Предел памяти в Node.js(и хром V8)
Во многих местах в Интернете вы увидите:
Каков предел памяти для процесса node?
и ответ:
В настоящее время по умолчанию v8 имеет ограничение памяти 512 МБ на 32-битных системах и 1 ГБ на 64-битных системах. Предел можно повысить, установив размер -max-old-space-size максимально ~ 1gb (32-разрядный) и ~ 1.7gb (64-разрядный), но рекомендуется разделить один процесс на несколько работников если вы попадаете в пределы памяти.
может кто-нибудь подтвердить, что это так: node.js часто обновляется???
* И что еще более важно, будет ли это в ближайшем будущем? *
Я хочу написать код javascript, который может иметь дело с 4gb объектов javascript (и скорость может не быть проблемой)
Если я не могу сделать это в node, я закончу работу в java (на 64-битной машине), но я бы предпочел не...
Ответы
Ответ 1
Это было большой проблемой для некоторых пользователей, использующих Node.js, и есть хорошие новости. Новый предел памяти для V8 теперь неизвестен (не протестирован) для 64-битной и поднят до 32-битного адресного пространства в 32-разрядных средах.
Подробнее здесь: http://code.google.com/p/v8/issues/detail?id=847
Ответ 2
Теперь я запускаю proc на Linux-узле Ubuntu, который имеет определенную утечку памяти, а node 0.6.0 нажимает 8gb. Подумайте, что это обработано:).
Ответ 3
Похож на истину. Когда я попытался выделить 50 Мб строки в буфере var buf = new Buffer(50*1024*1024);
, я получил фатальную ошибку FATAL ERROR: CALL_AND_RETRY_2 Allocation failed - process out of memory
. Я установил что-то около 457 Мбайт памяти памяти nodejs в мониторе процесса.
Ответ 4
node - флаг max-old-space-size = chrome