Opción JVM -Xss: ¿qué hace exactamente?
Aquí dice que -Xss se usa para "establecer el tamaño de la pila de subprocesos", ¿qué significa exactamente? ¿Alguien podría ayudarme a entender esto?
Cada hilo en una aplicación Java tiene su propia pila . La pila se utiliza para contener direcciones de retorno, argumentos de llamada a funciones/métodos, etc. Entonces, si un hilo tiende a procesar estructuras grandes a través de algoritmos recursivos, puede necesitar una pila grande para todas esas direcciones de retorno y demás. Con Sun JVM, puede establecer ese tamaño mediante ese parámetro.
De hecho, establece el tamaño de la pila en una JVM.
Debes tocarlo en cualquiera de estas dos situaciones:
- StackOverflowError (el tamaño de la pila es mayor que el límite), aumente el valor
- OutOfMemoryError: no se puede crear un nuevo subproceso nativo (demasiados subprocesos, cada subproceso tiene una pila grande), redúzcalo.
Esto último suele ocurrir cuando su Xss está configurado demasiado grande; entonces necesita equilibrarlo (¡probando!)
Cada hilo tiene una pila que se utiliza para variables locales y valores internos. El tamaño de la pila limita la profundidad que pueden tener sus llamadas. Generalmente esto no es algo que deba cambiar.
Si no me equivoco, esto es lo que le dice a la JVM cuántas llamadas sucesivas aceptará antes de emitir un StackOverflowError. No es algo que desees cambiar en general.