Question Où trouver la valeur XSS par défaut pour Sun / Oracle JVM?


Quelqu'un at-il déjà trouvé une liste de documents JVM unique? default XSS sizes pour différentes versions de la JVM Sun / Oracle et pour différents systèmes d'exploitation?

J'ai pu trouver cette table dans le jrockit jdk 5.0 docs, mais cela n'est pas utile pour ceux qui utilisent la JVM Sun / Oracle "normale".

J'apprécie que le XSS La valeur variera selon le système d'exploitation (et la version de la JVM). Par conséquent, il n'existe peut-être aucun document répertoriant toutes les combinaisons récentes. Mais si des lecteurs connaissent ici des documents individuels répertoriant au moins la valeur XSS par défaut pour chaque Version JVM (ou au moins 1.6 et 1.5), ou même seulement pour certains OS, ce serait un bon début.

J'ajouterai que la raison pour laquelle cela est utile est que souvent nous voyons des gens recommander (à tort, je pense) que quelqu'un peut résoudre un problème en changeant le XSS valeur. Mais si vous ne connaissez pas votre valeur par défaut, il est impossible de savoir si vous augmentez ou diminuez la valeur en fonction des changements que quelqu'un recommande. Ils n'indiquent généralement pas la version / le système d'exploitation sur lequel ils se trouvent, c'est donc un crapshoot si leur suggestion vous "aidera".

Encore mieux que de la documentation, si quelqu'un connaît un moyen d'interroger la machine virtuelle Java pour obtenir la valeur actuelle, que ce soit à partir de la ligne de commande ou via un appel API, cela serait encore plus précieux. Merci.


50
2018-05-16 16:46


origine


Réponses:


essayer:

java -XX:+PrintFlagsFinal -version | grep ThreadStackSize

54
2017-12-05 20:59



Cette information apparaît maintenant dans la FAQ Oracle Hotspot http://www.oracle.com/technetwork/java/hotspotfaq-138619.html#threads_oom

Vous rencontrez peut-être un problème avec la taille de pile par défaut pour les threads. Dans Java SE 6, la valeur par défaut sur Sparc est 512k dans la machine virtuelle 32 bits et 1024k dans la machine virtuelle 64 bits. Sur x86 Solaris / Linux, il s'agit de 320 Ko dans la machine virtuelle 32 bits et de 1024 Ko dans la machine virtuelle 64 bits.

Sous Windows, la taille de la pile de threads par défaut est lue à partir du fichier binaire (java.exe). A partir de Java SE 6, cette valeur est 320k dans la machine virtuelle 32 bits et 1024k dans la machine virtuelle 64 bits.

Vous pouvez réduire la taille de votre pile en exécutant l'option -Xss. Par exemple:

Serveur Java -Xss64k

Notez que sur certaines versions de Windows, le système d'exploitation peut arrondir les tailles de pile de threads en utilisant une granularité très grossière. Si la taille demandée est inférieure à la taille par défaut de 1 Ko ou plus, la taille de la pile est arrondie à la valeur par défaut; sinon, la taille de la pile est arrondie au multiple de 1 Mo.

64k est la quantité minimale d'espace de pile autorisée par thread.


21
2017-12-11 09:38



Tu peux le trouver sur le site Oracle sous "-XX: ThreadStackSize" option qui signifie la même chose que -Xss.


4
2018-06-18 11:29



Pour hotspot, cela dépend de votre architecture et de ce qui ne l'est pas.

La taille de pile par défaut peut être trouvée dans le code source dans les fichiers d'en-tête liés à une plate-forme donnée, par ex.

recherche de code google  (edit: ce service a été désactivé depuis que cette réponse a été faite, malheureusement) MISE À JOUR: voici un nouveau lien de Nebelmann: Source Openjdk: globals_windows_x86.hpp

Pas sûr si cela aide mais c'est un début


3
2018-05-25 19:30



Des paramètres par défaut sont disponibles dans le guide utilisateur IBM Java 6 (la source):

Xss <taille> pour Java Threads 32 bits:

AIX: 256KB
IBMI: 256KB
Linux: 256KB
Windows: 256KB
z/OS: 256KB

2
2017-08-29 14:07