web-dev-qa-db-fra.com

Différence entre Xms, Xmx et XX: MaxPermSize

Quelle est la différence entre

-Xms4096m
-Xmx2048M 
-XX:MaxPermSize=712M

Je suis confus de ces deux -Xmx2048M et -XX:MaxPermSize=712M

et se produira si j'utilise -Xmx2048 M ou -Xmx2048 m

24
Sanjay Dutt

Les objets Java résident dans une zone appelée heap, tandis que les métadonnées telles que les objets de classe et les objets de méthode résident dans génération permanente ou région de Perm Gen. La génération permanente ne fait pas partie du tas.

Le segment de mémoire est créé au démarrage de la machine virtuelle et peut augmenter ou diminuer en taille pendant l'exécution de l'application. Lorsque le tas est plein, les ordures sont collectées. Pendant le nettoyage de la mémoire, les objets qui ne sont plus utilisés sont effacés, ce qui laisse de la place pour de nouveaux objets.

- Xms size Spécifie la taille de segment de mémoire initiale.

- Xmx size Spécifie la taille maximale du segment de mémoire.

- XX: MaxPermSize = size Définit la taille maximale de l'espace de génération permanent. Cette option était obsolète dans JDK 8 et remplacée par l'option - XX: MaxMetaspaceSize .

Les tailles sont exprimées en octets. Ajoutez la lettre k ou K pour indiquer les kilo-octets, m ou M pour indiquer les mégaoctets, g ou G pour indiquer des giga-octets.

Références:

Comment le pool de mémoire Java est-il divisé?

Qu'est-ce que l'espace permanent?

Modèle de mémoire Java (JVM) - Gestion de la mémoire en Java

Options de ligne de commande Java 7 SE

Java 7 HotSpot VM Options

41
JRL