Quelqu'un peut-il expliquer comment fonctionne le garbage collector G1? Je n'ai encore trouvé aucune description complète et facile à comprendre.
Merci
Quelqu'un peut-il expliquer comment fonctionne le garbage collector G1? Je n'ai encore trouvé aucune description complète et facile à comprendre.
Merci
Le collecteur divise le tas en fixe la taille des régions et des pistes les données en direct dans ces régions. Il maintient un ensemble de pointeurs - les ", se souvient ensemble" - dans et hors de la région. Lorsqu'un GC est jugée nécessaire, il recueille les régions avec moins de vivre d'abord les données (et donc, "les ordures première"). Souvent, cela peut signifier la collecte de l'ensemble de la région en une seule étape: si le nombre de pointeurs dans une région est égal à zéro, alors il n'a pas besoin de faire une marque ou un balayage de la région.
Pour chaque région, il suit les divers paramètres qui décrivent combien de temps il faudra pour les recueillir. Vous pouvez lui donner un réel souple contrainte de temps sur des temps de pause, et il essaie ensuite de recueillir autant de déchets qu'il peut dans cette contrainte de temps.
Il n'y a JavaOne parler de G1 et quelques articles sur le sujet:
Le G1 est bien expliqué dans ce nouveau JavaOne 2012 session : G1 Garbage Collector de Réglage des Performances [youtube], [PDF].
Ils commencent avec l'introduction de la CMS et de la G1, leur comparaison, et puis le G1 analyse et le réglage est expliqué.
G1 caractéristiques
Un typique G1 segment peut ressembler à:
Voici un résumé de chaque phase G1:
1.1 Jeunes de Phase - Minor GC
1.2 Les Jeunes Ou Le Lancement De La Marque
2.1 Initiales de la Marque - voir point 1.2.
2.2 GC remarque
2.3. GC pause (mixte)
Notez que G1 est destiné à éviter Full GC autant que possible. Comme de Java 7u40, FullGC des pauses dans le G1 ne sont pas optimisés et sont mis en œuvre comme une opération mono-thread. Lors de l'utilisation de G1, essayez d'éviter de Plein GC - si vous voyez des FullGC pauses, votre GC configuration probablement nécessite quelques réglages.
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.