Opzione JVM-Xss-Cosa fa esattamente?


Dice qui che-Xss è usato per "impostare la dimensione dello stack del thread", cosa significa esattamente? Qualcuno potrebbe aiutarmi a capire questo?

Author: Community, 2011-02-11

4 answers

Ogni thread in un'applicazione Java ha il proprio stack. Lo stack viene utilizzato per contenere indirizzi di ritorno, argomenti di chiamata di funzione / metodo, ecc. Quindi, se un thread tende a elaborare strutture di grandi dimensioni tramite algoritmi ricorsivi, potrebbe essere necessario un grande stack per tutti quegli indirizzi di ritorno e così via. Con Sun JVM, puoi impostare quella dimensione tramite quel parametro.

 225
Author: T.J. Crowder, 2011-02-11 10:25:35

Imposta infatti la dimensione dello stack su una JVM.

Dovresti toccarlo in una di queste due situazioni:

  • StackOverflowError (la dimensione dello stack è maggiore del limite), aumentare il valore
  • OutOfMemoryError: impossibile creare un nuovo thread nativo (troppi thread, ogni thread ha uno stack grande), diminuirlo.

Quest'ultimo di solito arriva quando il tuo Xss è troppo grande - quindi devi bilanciarlo (test!)

 131
Author: Adam Adamaszek, 2013-08-06 13:11:14

Ogni thread ha uno stack utilizzato per variabili locali e valori interni. La dimensione dello stack limita la profondità delle chiamate. Generalmente questo non è qualcosa che devi cambiare.

 4
Author: Peter Lawrey, 2011-02-11 10:24:55

Se non sbaglio, questo è ciò che dice alla JVM quante chiamate successive accetterà prima di emettere uno StackOverflowError. Non qualcosa che si desidera cambiare in generale.

 3
Author: Kellindil, 2014-05-07 09:14:14