Подтвердить что ты не робот

Node - недопустимая длина массива

Я использую node v0.12.4. Когда я запускаю следующий код с node --max-old-space-size=8192 test.js, он дает мне ошибку FATAL ERROR: invalid array length Allocation failed - process out of memory

var a = new Array(200000000);
console.log(a.length);

Однако, если я изменяю размер до 300000000, я не получаю никаких ошибок. Что здесь происходит? Есть ли аргумент командной строки в стороне от --max-old-space-size Мне нужно изменить?

4b9b3361

Ответ 1

Размер кучи V8 ограничен до 1 ГБ для 64 бит и 512 для 32-разрядной машины, но объекты буфера существуют в основном вне кучи. вы можете расширить использование памяти до 1,7 ГБ в 64-битной и ~ 1 ГБ на 32-битной машине. Вы можете попробовать это.

--max-old-space-size=3000  --trace-gc-verbose

вы можете распечатать трассировку, чтобы узнать об использовании памяти.