ограничение памяти в Node.js (и Chrome V8) - PullRequest
57 голосов
/ 25 августа 2011

Во многих местах в Интернете вы увидите:

Какое ограничение памяти у процесса узла?

и ответ:

В настоящее время по умолчанию V8 имеет ограничение памяти 512 МБ в 32-разрядных системах и 1 ГБ в 64-разрядных системах. Предел можно увеличить, установив для параметра --max-old-space-size максимальное значение ~ 1 ГБ (32-разрядное) и ~ 1,7 ГБ (64-разрядное), но рекомендуется разделить отдельный процесс на несколько рабочих. если вы выходите за пределы памяти.

Может кто-нибудь подтвердить, что это так, поскольку Node.js часто обновляется?

И что еще более важно, будет ли это в ближайшем будущем?

Я хочу написать код JavaScript, который может иметь дело с 4 ГБ объектов javascript (и скорость может не быть проблемой).

Если я не могу сделать это в Node, я в конечном итоге буду в Java (на 64-битной машине), но я бы предпочел этого не делать.

Ответы [ 4 ]

21 голосов
/ 20 сентября 2011

Это было большой проблемой для некоторых, использующих Node.js, и есть хорошие новости. Новый предел памяти для V8 в настоящее время неизвестен (не проверен) для 64-разрядных систем и увеличен до 32-разрядного адресного пространства в 32-разрядных средах.

Подробнее здесь: http://code.google.com/p/v8/issues/detail?id=847

5 голосов
/ 09 ноября 2011

Сейчас я запускаю процесс на Ubuntu linux с определенной утечкой памяти, а узел 0.6.0 использует 8 ГБ.Думаю, это решено:).

1 голос
/ 12 октября 2018

Запуск приложения nodejs с кучей памяти 8 ГБ

узел --max-old-space-size = 8192 app.js

1 голос
/ 26 августа 2011

Похоже на правду.Когда меня пытались выделить 50 Мб строки в буфере var buf = new Buffer(50*1024*1024);, я получил фатальную ошибку FATAL ERROR: CALL_AND_RETRY_2 Allocation failed - process out of memory.Я исправил около 457 Мб использования памяти nodejs в мониторе процессов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...