node.js - rangeerror maximum call stack size exceeded at string replace
¿Cómo puedo aumentar el tamaño máximo de pila de llamadas en Node.js? (2)
En las versiones de nodo 5 y 6, he verificado que la opción para establecer el tamaño máximo de pila es "--stack_size" (con un guión bajo):
$ node --v8-options
[...]
--stack_size (default size of stack region v8 is allowed to use (in kBytes))
type: int default: 984
Para aumentar el tamaño máximo de pila, simplemente emita algo como:
$ node --stack_size=1200
Como han señalado otros, tenga en cuenta que aumentar este valor puede provocar un fallo de segmentación. El valor máximo seguro para mí con la versión 6 es 1361, pero parece mayor con la versión 5.
Mirando el panorama general, aumentar el tamaño de la pila puede no resolver todos sus problemas. Al escribir funciones recursivas en el nodo, su mejor estrategia es escribirlas de manner tail-recursive , ya que la versión 6 admite llamadas de cola correctas. Esto eliminará los desbordamientos de tamaño de pila.
Esto es diferente a otras preguntas con respecto a un mensaje de error en el nodo que lee RangeError: Se excedió el tamaño máximo de la pila de llamadas porque sé exactamente por qué recibo este mensaje de error. Está sucediendo porque estoy recurriendo, recurriendo bastante de hecho.
Gracias.
Desde el node --help
:
node --max-stack-size=val
Actualización: como indican los comentarios, a pesar de que el texto de ayuda aún muestra la --max-stack-size
, en el nodo v0.10.x, debe usar --stack-size
lugar.
node --stack-size=val