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

  • Var vs this в объекте Javascript
  • NodeJS + socket.io: простой пример Client / Server не работает
  • Как безопасно запускать написанные пользователем сценарии в изолированной песочнице node.js?
  • Кордова: Сокеты, PushNotifications или многократно опроса сервера?
  • Mongoose найти один и нажать на массив документов
  • Почему console.log () не показывает унаследованные свойства объекта Object.create?
  • Как импортировать файлы non-node.js?
  • Как использовать событие стока stream.Writable в Node.js
  • 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 делает сайт умным, красочным и простым использованием.