web-dev-qa-db-fra.com

Valeurs par défaut pour Xmx, Xms, MaxPermSize sur des machines non serveur

Quelles sont les valeurs par défaut pour les options suivantes dans Java 6 sur une machine non serveur-classe )?

  • -Xmx
  • -XX: MaxPermSize

Oracle documentation indique que:

Sur les machines de classe serveur exécutant la machine virtuelle du serveur, le garbage collector (GC) est passé du collecteur série précédent (-XX: + UseSerialGC) à un collecteur parallèle (-XX: + UseParallelGC).

et

Sur les machines de classe serveur exécutant soit VM (client ou serveur) avec le garbage collector parallèle (-XX: + UseParallelGC), la taille de segment initiale et la taille de segment maximale ont changé

La page ne décrit pas les valeurs par défaut pour les machines n'appartenant pas à la classe serveur, mais seulement que, par exemple, la taille de segment de mémoire initiale est "un minimum raisonnable". En regardant la 'page de manuel' pour la commande Java il y a ce qui suit contre -Xms:

La valeur par défaut est choisie lors de l'exécution en fonction de la configuration du système

48
Rich

Valeurs par défaut pour JDK 1.6.0_29 sous Windows 7/32 bits:

-Xmx256m
-XX:MaxPermSize=64m

La valeur de ces options peut également être imprimée par la commande suivante:

Java -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version 2>&1

Recherchez ensuite les clés MaxHeapSize et MaxPermSize et voyez les valeurs par défaut.

uintx InitialHeapSize                          := 199947456       {product}
uintx MaxHeapSize                              := 268435456       {product}           
uintx MaxPermSize                               = 67108864        {pd product}        

Ici est le HotSpot ultime VM Cheat Sheet Options avec valeurs par défaut et descriptions pour les 5 dernières versions de JDK (7, 8, 9, 10 & 11).

70
Andriy Plokhotnyuk