Nach der Java Platform, Standard Edition HotSpot Virtual Machine Garbage Collection Tuning Guide Abschnitt "Generations" TitelWird GC immer aufgerufen, auch wenn der Heapspeicher zur Laufzeit ständig verfügbar ist?
Als die junge Generation füllt, verursacht es eine kleine Sammlung, in der nur die junge Generation
gesammelt
und:
Schließlich wird die fest angestellten Generation füllen und gesammelt werden müssen, Ergebnis in einer großen Sammlung, in der der gesamte Haufen gesammelt wird.
Also, wenn die Anwendung der Verteilungsphase beendet hat, und während der Ausführung der Anwendung werden die jungen und fest angestellte Generationen nie (überhaupt in jeder Phase) gefüllt, dann gc wird nicht einmal auftreten?
Wenn es auftritt, was ist der Grund? Denn das scheint der verlinkten Dokumentation zu widersprechen.
Die Speicherverwaltung ist vollständig der JVM vorbehalten. Daher kann eine JVM * die Garbage Collection vorsorglich im Leerlauf ausführen, wenn sie dies möchte. Ich weiß nicht, ob aktuelle JVM-Implementierungen das tun, aber es ist erlaubt. Ihre Angebote stammen aus einer bestimmten JVM-Implementierung (Oracle HotSpot) und sind nicht auf alle JVMs anwendbar. – Andreas