Une définition rapide de la "génération permanente" :
"La génération permanente est utilisée pour contenir les données réfléchies de la VM elle-même telles que les objets de classe et les méthodes de méthode. Ces objets réfléchissants sont directement alloués dans la génération génération, et elle est dimensionnée indépendamment des autres générations." [réf]
En d'autres termes, c'est là que vont les définitions de classe (et cela explique pourquoi vous pouvez recevoir le message OutOfMemoryError: PermGen space
si une application charge un grand nombre de classes et/ou lors d'un redéploiement).
Notez que PermSize
s'ajoute à la -Xmx
valeur définie par l'utilisateur dans les options de la JVM. Mais MaxPermSize
permet à la JVM d'être en mesure de faire croître les PermSize
à la quantité spécifiée. Au départ, lorsque la VM est chargée, le MaxPermSize
sera toujours la valeur par défaut (32mb pour les -client
et 64mb pour -server
) mais n'absorbera cette quantité que lorsqu'elle sera nécessaire. D'un autre côté, si vous définissez LES DEUX PermSize
et MaxPermSize
à 256 mégaoctets, vous remarquerez que le tas global a augmenté de 256 mégaoctets en plus de l'augmentation de la capacité de stockage. -Xmx
réglage.