Установить размер кучи памяти из кода JavaScript? - PullRequest
0 голосов
/ 14 января 2019

Я пишу скрипт в node.js, который быстро запускается из памяти при запуске.

Чтобы решить эту проблему, я должен увеличить объем памяти до >> 5 ГБ. Я знаю, что для увеличения размера скрипта необходимо использовать командную строку для запуска скрипта следующим образом: узел max-old-space-size = script.js, который работает отлично.

Мой вопрос: как установить max-old-space-size из кода? Можно установить переменную из кода, поэтому кто запускает скрипт, может опустить max-old-space-size = в командной строке?

То, что я хочу получить, - это то, что пользователь, который загружает мой скрипт, запускает его и ничего не устанавливая, скрипт работает с объемом памяти, который я установил из кода.

Спасибо за любую помощь!

1 Ответ

0 голосов
/ 15 января 2019

Один из способов добиться того, чего вы хотите - это перезапустить узел из вашего скрипта. Я не уверен, что это лучший способ сделать это, но он должен работать.

# cat test.js
var cp = require('child_process');

function main() {
        console.log('This is the main script');
}

function spawn() {
        console.log('spawning the script with the correct node arguments');
        var c = cp.spawn('/opt/local/bin/node', ['--max-old-space-size=5120', __filename], {
                'stdio': 'inherit',
                'env': {
                        'RUN_MAIN_SCRIPT': 'TRUE'
                }
        });

        c.on('error', function (e) {
                console.log('Error');
                console.log(e.toString());
        });
}

process.env['RUN_MAIN_SCRIPT'] ? main() : spawn();
# node test.js
spawning the script with the correct node arguments
This is the main script
#
...