Maison  >  Article  >  Java  >  Java Virtual Machine Learning - Allocation et recyclage de la mémoire des objets

Java Virtual Machine Learning - Allocation et recyclage de la mémoire des objets

黄舟
黄舟original
2017-03-18 17:51:501603parcourir

Les objets sont alloués en premier dans Eden

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.



Les gros objets entrent directement dans la vieillesse

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.

Les objets qui ont survécu longtemps entreront 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.

La différence entre Minor GC et Full GC

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

Java Virtual Machine Learning - Accès aux objets

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn