2012-07-04 14 views

risposta

53

Da node --help:

node --max-stack-size=val 

Update: come i commenti indicano, anche se il testo della guida elenca ancora la possibilità --max-stack-size, nel nodo v0.10.x è necessario utilizzare --stack-size invece.

node --stack-size=val 
+1

BANG !!! aspettando 10 minuti per accettare, ma sì che è il tasso. Grazie. –

+0

piuttosto ovvio ora sto guardando - help :) –

+0

consideri http://code.google.com/p/v8/issues/detail?id=1764 se sei su windows – Esailija

4

Nel nodo versione 5 e 6, Ho verificato che l'opzione per impostare la dimensione massima dello stack è "--stack_size" (con un trattino):

$ node --v8-options 
[...] 
--stack_size (default size of stack region v8 is allowed to use (in kBytes)) 
     type: int default: 984 

Per aumentare la dimensione massima dello stack , basta rilasciare qualcosa di simile:

$ node --stack_size=1200 

come già sottolineato da altri, essere consapevoli del fatto che l'aumento di questo valore può portare ad un errore di segmentazione. Il valore di sicurezza massimo per me con la versione 6 è 1361, ma sembra più alto con la versione 5.

Guardando l'immagine più grande, aumentare le dimensioni dello stack potrebbe non risolvere tutti i tuoi problemi. Quando si scrivono le funzioni ricorsive nel nodo, la strategia migliore è scriverle in uno tail-recursivemanner, poiché la versione 6 supporta le chiamate tail appropriate. Ciò eliminerà gli overflow della dimensione dello stack.

+0

Il problema è che ci sono molti modi per riempire lo stack - map, forEach, Promise.all .... –

Problemi correlati