Ich habe Java so konfiguriert, dass Informationen zur Speicherbereinigung in die Protokolle ausgegeben werden ( ausführliche GC ). Ich bin mir nicht sicher, was die Garbage Collection-Einträge in den Protokollen bedeuten. Ein Beispiel dieser Einträge finden Sie unten. Ich habe mich bei Google umgesehen und keine soliden Erklärungen gefunden.
Ich habe einige vernünftige Vermutungen, aber ich suche nach Antworten, die strenge Definitionen der Bedeutung der Zahlen in den Einträgen liefern, gestützt auf glaubwürdige Quellen. Eine automatische +1 für alle Antworten, die die Sun-Dokumentation zitieren. Meine Fragen sind:
- Worauf bezieht sich PSYoungGen? Ich nehme an, es hat etwas mit der vorherigen (jüngeren?) Generation zu tun, aber was genau?
- Was ist der Unterschied zwischen dem zweiten und dem ersten Triplett von Zahlen?
- Warum wird ein Name (PSYoungGen) für das erste Triplett von Zahlen angegeben, nicht jedoch für das zweite?
- Was bedeutet jede Zahl (Speichergröße) im Triplett? Beispielsweise ist in 109884K-> 14201K (139904K) der Speicher vor GC 109884k und wird dann auf 14201K reduziert. Wie ist die dritte Nummer relevant? Warum sollten wir einen zweiten Satz von Zahlen benötigen?
8109.128: [GC [PSYoungGen: 109884K-> 14201K (139904K)] 691015K-> 595332K (1119040K), 0,0454530 Sekunden]
8112.111: [GC [PSYoungGen: 126649K-> 15528K (142336K)] 707780K-> 605892K (1121472K), 0,0934560 Sekunden]
8112.802: [GC [PSYoungGen: 130344K-> 3732K (118592K)] 720708K-> 607895K (1097728K), 0,0682690 Sekunden]