89 votes

Qu'est-ce que l'espace perm?

Tout en apprenant sur le profilage de la mémoire java, je continue à voir le terme "perm space" en plus de "heap". Je sais ce que le tas est - quel est l'espace perm?

105voto

Andrew Hare Points 159332

Il représente la génération permanente:

La génération permanente est spécial car il contient des méta-données décrivant l'utilisateur des classes qui ne sont pas partie du langage Java). Exemples de ces méta-données sont des objets description des classes et des méthodes et ils sont stockés de façon Permanente Génération. Applications avec de grandes base de code peut rapidement remplir cette le segment des tas qui sera la cause de java.lang.OutOfMemoryError: PermGen pas importe comment votre -Xmx et combien vous avez de mémoire sur la machine.

27voto

DKSRathore Points 981

Perm space est utilisé pour garder les informations pour les classes chargées, et quelques autres fonctionnalités avancées telles que l' String Pool(hautement optimisée de la chaîne de l'égalité des tests), qui ont habituellement créé par String.intern() méthodes. En tant que votre demande(nombre de classes) va croître de cet espace doit se remplir rapidement, depuis la collecte des ordures sur cet Espace n'est pas très efficace pour nettoyer au besoin, vous Sortir rapidement de la Mémoire : perm gen espace d'erreur. Ensuite, aucune application doit s'exécuter sur la machine de manière efficace, même après avoir eu un énorme vide JVM.

Avant de commencer votre demande, vous devriez java -XX:MaxPermSize pour se débarrasser de cette erreur.

20voto

Matt Points 6908

Réponse simple (et simplifiée à l'extrême): c'est l'endroit où le JVM stocke ses propres données de comptabilité, par opposition à vos données.

5voto

Jesse Points 1063

L'espace permgen est la zone de mémoire qui contient toutes les données de réflexion de la machine virtuelle elle-même, telles que les objets de classe et de méthode.

3voto

Nick Points 969

Il contient des éléments tels que les définitions de classe, le pool de chaînes, etc. Je suppose que vous pourriez appeler cela des méta-données.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X