274 votes

Option JVM -Xss - Que fait-il exactement?

Il dit ici que -Xss est utilisé pour "définir la taille de la pile de threads", qu'est-ce que cela signifie exactement? Quelqu'un pourrait-il m'aider à comprendre cela?

301voto

T.J. Crowder Points 285826

Chaque thread d'une application Java possède sa propre pile . La pile est utilisée pour contenir des adresses de retour, des arguments d'appel de fonction / méthode, etc. Ainsi, si un thread a tendance à traiter de grandes structures via des algorithmes récursifs, il peut avoir besoin d'une grande pile pour toutes ces adresses de retour. Avec Sun JVM, vous pouvez définir cette taille via ce paramètre.

197voto

Adam Adamaszek Points 1142

Il définit en effet la taille de la pile sur une machine virtuelle Java.

Vous devriez le toucher dans l'une ou l'autre de ces deux situations:

  • StackOverflowError (la taille de la pile est supérieure à la limite), augmentez la valeur
  • OutOfMemoryError: impossible de créer un nouveau thread natif (trop de threads, chaque thread a une grande pile), diminuez-le.

Ce dernier vient généralement lorsque votre Xss est trop grand - vous devez alors l’équilibrer (tester!)

8voto

Peter Lawrey Points 229686

Chaque thread a une pile utilisée pour les variables locales et les valeurs internes. La taille de la pile limite la profondeur de vos appels. En général, ce n'est pas quelque chose que vous devez changer.

5voto

Kellindil Points 2962

Si je ne me trompe pas, c'est ce qui indique à la JVM combien d'appels successifs elle acceptera avant d'émettre un StackOverflowError. Pas quelque chose que vous souhaitez changer en général.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X