In den meisten Fällen werden Objekte zuerst im Eden-Bereich der neuen Generation zugewiesen. Wenn im Eden-Speicherbereich nicht genügend Speicherplatz für die Zuweisung vorhanden ist, löst die virtuelle Maschine einen Minor GC (New Generation GC) aus. Während der Minor GC verschiebt die virtuelle Maschine Objekte im Eden-Bereich in einen der Survivor-Bereiche.
Die sogenannten Große Objekte beziehen sich auf Objekte, die viel zusammenhängenden Raum benötigen. Die virtuelle Maschine stellt einen XX:PretenureSizeThreshold-Parameter bereit, sodass Objekte, die größer als dieser Wert sind, direkt in der alten Generation zugewiesen werden.
Die virtuelle Maschine nutzt die Idee der Generationensammlung, um den Speicher zu verwalten. Beim Recycling von Speicher muss sie in der Lage sein, sie zu identifizieren Welche Objekte sollten in der neuen Generation platziert werden und welche sollten in der neuen Generation platziert werden. Um dies zu erreichen, definiert die virtuelle Maschine ein Objektalter für jedes Objekt. Jedes Mal, wenn es nach einem GC der neuen Generation überlebt, wird das Alter des Objekts um ein Jahr erhöht (Standard ist 15). auf die alte Generation heraufgestuft werden soll. Die Altersgrenze für das in die alte Generation hochzustufende Objekt kann durch -XX:MaxTenuringThreshold festgelegt werden.
GC der neuen Generation (Minor GC): bezieht sich auf die Garbage Collection-Aktion, die in der neuen Generation stattfindet, Minor GC ist es sehr häufig und die Wiederherstellungsgeschwindigkeit ist relativ schnell.
GC der alten Generation (Major GC / Full GC): bezieht sich auf den GC, der in der alten Generation auftritt. Nach dem Auftreten von Major GC wird dieser häufig von mindestens einem Minor GC begleitet. Die Geschwindigkeit von Major GC ist im Allgemeinen mehr als zehnmal langsamer als die von Minor GC.
Das Obige ist der Inhalt des Java Virtual Machine Learning – Objektspeicherzuweisung und -recycling. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!
Verwandte Artikel:
Detaillierte Erklärung der Java Virtual Machine
Detailliertes Verständnis der Java Virtual Machine