Dans la plupart des cas, les objets sont alloués en premier dans la zone Eden nouvelle génération. Lorsque la zone mémoire Eden ne dispose pas de suffisamment d'espace pour l'allocation, la machine virtuelle déclenchera un Minor GC (New Generation GC). Pendant le GC mineur, la machine virtuelle déplace les objets de la zone Eden vers l'une des zones Survivor.
Le soi-disant les gros objets font référence aux objets qui nécessitent de grandes quantités d'espace contigu. La machine virtuelle fournit un paramètre XX:PretenureSizeThreshold, afin que les objets plus grands que cette valeur soient directement alloués dans l'ancienne génération.
La machine virtuelle utilise l'idée de collection générationnelle pour gérer la mémoire. Lors du recyclage de la mémoire, elle doit pouvoir s'identifier. quels objets doivent être placés dans la nouvelle génération et lesquels doivent être placés dans la nouvelle génération Dans la vieillesse. Pour y parvenir, la machine virtuelle définit un âge d'objet pour chaque objet. Chaque fois qu'il survit après une nouvelle génération de GC, l'âge de l'objet est augmenté d'un an. Lorsque l'âge atteint un certain niveau (la valeur par défaut est 15), Will. être promu à l'ancienne génération. La limite d'âge pour l'objet à promouvoir à l'ancienne génération peut être définie par -XX:MaxTenuringThreshold.
Nouvelle génération GC (Minor GC) : fait référence à l'action de garbage collection qui se produit dans la nouvelle génération. Parce que la plupart des objets sont éphémères, Minor GC l'est. très fréquent et la vitesse de récupération est relativement rapide.
GC ancienne génération (GC Majeur / GC Complet) : désigne le GC qui survient dans l'ancienne génération. Après l'apparition du GC Majeur, il est souvent accompagné d'au moins un GC Mineur. La vitesse du Major GC est généralement plus de 10 fois plus lente que celle du Minor GC.
Ce qui précède est le contenu de l'apprentissage de la machine virtuelle Java - allocation et recyclage de la mémoire objet. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !
Articles connexes :
Explication détaillée de la machine virtuelle Java
Compréhension approfondie de la machine virtuelle Java
Java Virtual Machine Learning - Mécanisme de chargement de classe