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?
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.
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!)
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.
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.