Question

Je suis confondu avec Heap, jeune, génération et Perm Titularisé.

Quelqu'un pourrait-il expliquer s'il vous plaît?

Était-ce utile?

La solution

Le garbage collector Java est appelé générationnelles Garbage Collector . Les objets dans une application pour vivre des durées variables selon l'endroit où ils sont créés et comment ils sont utilisés. L'idée clé ici est que l'utilisation de différentes stratégies de collecte des ordures pour les objets de courte durée et à vie longue permet au GC d'optimiser spécifiquement pour chaque cas.

Grosso modo, comme des objets "survivre" collections d'ordures répétées dans le Jeune génération ils sont migrés à Génération Titularisé . Génération permanente est un cas particulier, il contient des objets, qui sont nécessaires à la machine virtuelle Java, qui ne sont pas nécessairement représentés dans votre programme, par exemple des objets qui représentent les classes et méthodes.

Depuis la Jeune génération contiennent généralement beaucoup de déchets dans, il est optimisé pour se débarrasser d'un grand nombre d'objets inutilisés à la fois. Génération Titularisé , car il contient des objets plus vécu est optimisé pour la collecte des ordures rapide sans perdre beaucoup de mémoire.

Avec l'amélioration de la technologie de collecte des ordures les détails sont devenus très complexes et varient en fonction de votre machine virtuelle Java et comment il a été configuré. Vous devriez lire pour la machine virtuelle Java spécifique que vous utilisez si vous avez besoin de savoir exactement ce qui se passe.

Cela dit, il est un simple arrangement historique, c'est toujours utile à un niveau conceptuel. Historiquement, le Jeune génération serait un collecteur de copie et génération Titularisé un

Autres conseils

Java Heap mémoire fait partie de la mémoire allouée à JVM par le système d'exploitation. Chaque fois que nous créons des objets qu'ils sont créés à l'intérieur en java .

Espace Java Heap est divisé en trois régions ou génération pour l'amour de la collecte des ordures appelé Jeune génération, ancienne ou la génération et la génération permanente titularisé . génération permanente est détruite pendant la pleine gc dans JVM hotspot

Jeune génération est l'endroit où tous les nouveaux objets sont attribués et les personnes âgées. Lorsque la jeune génération se remplit, ce qui provoque une collecte des ordures mineures. Une jeune génération pleine d'objets morts est recueilli très rapidement. Certains objets survivants sont âgés et finalement passer à l'ancienne génération.

ancienne génération est utilisé pour stocker des objets longs survivants. En règle générale, un seuil est fixé pour objet la jeune génération et quand cet âge est atteint, l'objet est déplacé à l'ancienne génération. Finalement, l'ancienne génération doit être recueillie. Cet événement est appelé une collection d'ordures majeur.

Génération permanente contient des métadonnées requises par la machine virtuelle Java pour décrire les classes et les méthodes utilisées dans l'application. La génération permanente est peuplée par la machine virtuelle Java à l'exécution en fonction des classes utilisées par l'application.

PermGen a été remplacé par Metaspace depuis la version Java 8. PermSize & MaxPermSize paramètres seront ignorés maintenant. Regardez cette DZone article par Pierre - Hugues Charbonneau à comprendre au sujet de Metaspace .

 ici

Source de l'image: http://www.oracle .com / webfolder / TechNetwork / tutorials / OBE / java / GC01 / index.html

Reportez-vous à même article pour plus de détails.

Tous les objets du tas survivre quand ils sont référencés. Quand ils ne sont pas plus, le garbage collector (GC) va récupérer leur mémoire.

PermGen, Young et sont clasifications diférents Titularisé d'objets (ou des espaces dans le tas où ils peuvent être).

PermGen: ces objets seront toujours là, ils ne sont pas des déchets collectés. objets Les classes sont là, les chaînes internées, etc. Je ne sais pas s'il y a un GC là (lorsque le système des classes ... mais les déchargements ce n'est pas une chose normale)

Young:. lorsqu'un objet est créé, il est ici

Titularisé. un objet va à cette classification / catégorie quand il survit N GC passes (survivre = passe du GC, mais cet objet est référencé ne peut donc pas être récupéré)

En fonction du GC utilisé et certains paramétrisation, GC passe plus ou moins souvent.

Ensuite, la collecte des ordures peut avoir des approches différentes pour Maange objets dans le tas. Cette classification des objets permet de le faire.

Voici un autre excellent (si long) article sur la façon de régler / dimensionner vos paramètres de GC, qui peuvent vous aider à comprendre encore plus:

https://docs.oracle.com/ JavaSE / 8 / docs / technotes / guides / vm / gctuning /

Une lecture très utile si vous rencontrez des problèmes de GC et doivent savoir lire les journaux du GC, ou besoin de comprendre comment fonctionne votre collecteur de courant GC.

Si vous voulez brancher la surveillance à distance d'un système de fonctionnement pour voir l'utilisation de la mémoire en temps réel et GC s'exécute vérifier cet outil sur:

http://java.sun.com/performance/jvmstat/visualgc.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top