web-dev-qa-db-fra.com

limite de mémoire dans Node.js (et chrome V8)

Dans de nombreux endroits sur le Web, vous verrez:

Quelle est la limite de mémoire sur un processus de noeud?

et la réponse:

Actuellement, par défaut, la v8 a une limite de mémoire de 512 Mo sur les systèmes 32 bits et de 1 Go sur les systèmes 64 bits. La limite peut être augmentée en définissant --max-old-space-size sur un maximum de ~ 1 Go (32 bits) et ~ 1,7 Go (64 bits), mais il est recommandé de fractionner votre processus unique en plusieurs utilisateurs. si vous atteignez les limites de la mémoire.

Quelqu'un peut-il confirmer que c'est le cas puisque node.js semble mettre à jour fréquemment ??? * Et plus important encore, sera-ce le cas dans un proche avenir ???

Je veux écrire du code javascript qui pourrait avoir à traiter avec 4 Go d'objets javascript (et la vitesse pourrait ne pas être un problème) 

Si je ne peux pas le faire dans le noeud, je vais le faire en Java (sur une machine 64 bits) mais je préférerais ne pas ...

54
chacko

Cela a été une grande préoccupation pour certains utilisateurs de Node.js, et il y a de bonnes nouvelles. La nouvelle limite de mémoire pour V8 est maintenant inconnue (non testée) pour 64 bits et portée à un espace d’adresse pouvant atteindre 32 bits dans les environnements 32 bits. 

Lisez plus ici: http://code.google.com/p/v8/issues/detail?id=847

19
Sampsa Suoninen

Je suis en train d'exécuter un processus sur Linux sous Ubuntu qui a une fuite de mémoire définitive et le noeud 0.6.0 pousse 8 Go. Je pense que c'est géré :).

5
j03m

On dirait un vrai. Quand j'avais essayé d'allouer une chaîne de 50 Mo dans la mémoire tampon var buf = new Buffer(50*1024*1024);, j'ai eu l'erreur fatale FATAL ERROR: CALL_AND_RETRY_2 Allocation failed - process out of memory. J'ai corrigé quelque chose autour de 457 Mo d'utilisation de la mémoire de nodejs dans le moniteur de processus.

1
Pasha Rumkin

Démarrage de l'application nodejs avec une mémoire de 8 Go

noeud --max-old-space-size = 8192 app.js

1
Piyush Katariya