web-dev-qa-db-fra.com

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

Quelqu'un a-t-il déjà trouvé un seul document JVM répertoriant default XSS sizes pour différentes versions de la machine virtuelle Java Sun/Oracle et pour différents systèmes d'exploitation?

J'ai été en mesure de trouver ce tableau dans le jrockit jdk 5.0 docs , mais ce n'est pas utile pour ceux qui utilisent la JVM Sun/Oracle "normale".

J'apprécie que la valeur XSS varie selon le système d'exploitation (et la version JVM), donc il n'y a peut-être pas un seul document qui répertorie toutes les combinaisons récentes. Mais si des lecteurs ici connaissent des documents individuels qui répertorient au moins juste la valeur XSS par défaut pour chaque version JVM (ou au moins 1.6 et 1.5), ou même si ce n'est que pour certains OS, ce serait un excellent 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 puisse résoudre un problème en modifiant la valeur XSS. Mais si vous ne connaissez pas votre valeur par défaut, il n'y a aucun moyen de savoir si vous augmentez ou réduisez la valeur par le changement 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 une question de savoir si leur suggestion vous "aidera".

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

56
charlie arehart

essayer:

Java -XX:+PrintFlagsFinal -version | grep ThreadStackSize
70
plockc

Ces informations apparaissent désormais dans Oracle Hotspot FAQ 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, elle est de 320k en 32 bits = VM et 1024k dans la VM 64 bits.

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

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

Java -server -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 à un multiple de 1 Mo.

64 Ko est le moins d'espace de pile autorisé par thread.

22
Ben

Vous pouvez le trouver sur le site Oracle sous l'option "-XX: ThreadStackSize" qui signifie la même chose que -Xss.

5
keypress

Pour le hotspot, cela dépend de votre architecture et non.

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

recherche de code Google (modifier: 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

Je ne sais pas si cela aide, mais c'est un début

3
Greg Bowyer

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

Xss <size> pour Java Threads 32 bits:

AIX®: 256KB
IBM®I: 256KB
Linux: 256KB
Windows: 256KB
z/OS®: 256KB
2
chepseskaf