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 мне нужно изменить?

  • Объяснение сокета узла узла
  • Как загрузить файл с помощью Node.js (без использования сторонних библиотек)?
  • Узел JS и Webpack Неожиданный токен <
  • Socket.io hardcoded vs dynamic connection url
  • Node.js - использование module.exports как конструктора
  • Закрытие и обратная ошибка утечки в javascript
  • Ошибка: невозможно настроить заголовки после их отправки клиенту
  • Узел JS Promise.all и forEach
  • 2 Solutions collect form web for “Node – недопустимая длина массива”

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

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

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

    Существует предел памяти.64 бит. Машины могут использовать около 1,6 гб. Это предел компилятора V8. Возможно, это может помочь вам

    Конфигурирование управления памятью v8 должно быть умным для процесса node.js

    https://groups.google.com/forum/#!topic/nodejs/BQ5dSm8lITQ

    JavaScript делает сайт умным, красочным и простым использованием.