当前位置:网站首页>Un processus GC complet pour le principe JVM
Un processus GC complet pour le principe JVM
2022-06-23 05:21:00 【Daydayup 囎】
JVM De GC C'est la collecte des ordures,Principalement la récupération de la mémoire en tas.Cet article présente JVM Pour la première fois GC Comment est le processus,Posez d'abord la première question,Quel genre d'objet serait JVM Objectif du recyclage?
Un.、Algorithme d'analyse de l'accessibilité(GC Roots)
Il y a une sorte deCompteur de référence,Peut être utilisé pour déterminer le nombre de fois qu'un objet est référencé,Si le nombre de références est0,Le représentant peut être recyclé.
Cette mise en œuvre est relativement simple,Mais il n'y a rien à faire avec les références circulaires,Alors... Java AdoptéAlgorithme d'analyse de l'accessibilité.
C'est - à - dire déterminer si un objet est lié à GC Roots Les chemins entre ces objets peuvent atteindre,Si ce n'est pas possible,EtSans doute.Devenir un objet de recyclage,Objet jugé inaccessible pour être recyclable, il faut passer par le processus de marquage au moins deux fois,S'il n'y a toujours pas d'échappatoire à la possibilité de devenir un objet recyclable au cours de ces deux processus de marquage,Est essentiellement recyclable.
In Java Moyenne,Peut être utilisé comme GC Roots Les objets de:
- Pile de machines virtuelles(Tableau des variables locales)Objet référencé dans
- Propriétés statiques de classe dans la zone de méthode Objet référencé
- Constante dans la zone de la méthodeObjet référencé
- Pile de méthodes localesObjet référencé dans
2.、JVMStructure du tas dans
JVM Le tas peut être divisé en deux parties,Cénozoïque et gériatrique,L'échelle de taille est1:2,Comme suit:

Parmi eux,Le cénozoïque est divisé en Eden Régions et Survivor Zone, Survivor La zone des survivants est divisée en deux morceaux de taille égale from Et to Zone.C'est JVM La structure du tas moyen et l'échelle par défaut des Parties , Bien sûr, ces proportions peuvent passer par JVM Paramètres pour ajuster.
2.1 Pourquoi le cénozoïque a - t - il été divisé en trois zones
Il est nécessaire d'introduire ici la nouvelle génération d'algorithmes de collecte des ordures ——Algorithme de réplication.Le coeur de l'algorithme est de diviser la mémoire disponible en deux morceaux de taille égale par la capacité, Une seule pièce par cycle de recyclage ,Quand ce morceau de mémoire sera épuisé,Copiez l'objet vivant sur un autre morceau, Puis videz l'espace mémoire utilisé .
- Avantages: Pas besoin de penser à la fragmentation de la mémoire ;Efficacité élevée.
- Inconvénients: Réduction de moitié de la capacité disponible ,Plutôt gaspillé.
【 Paramètres optimaux 】: Analyse fondée sur des données faisant autorité ,90%Les objets de la vie et de la mort,C'est pourquoi nous adoptons10% L'espace est utilisé comme zone d'échange , Parce que la zone d'échange doit avoir une quantité égale de deux , Par conséquent, la proportion d'allocation par défaut pour les trois régions du cénozoïque moyen utilisant l'algorithme de réplication est 8:1:1.
2.2 Distribution et recyclage des objets de la nouvelle génération
(1)En gros, Les nouveaux objets ont priorité sur Eden Répartition régionale;
(2)Quand Eden Quand il n'y a pas assez d'espace , Une fois lancé Minor GC;
(3)Minor GC Recyclage la nouvelle génération utilise une version améliorée de l'algorithme de recyclage de la réplication ,C'est - à - dire:
- from Régions et to Deux zones d'échange dans la zone , Une seule de ces deux zones a des données
- Adoption8:1:1 Taux d'allocation par défaut pour (-XX:SurvivorRatioPar défaut8,Représentant Eden Région et Survivor Échelle de taille de la zone)
2.3 Distribution et recyclage d'objets anciens
(1)Un objet de l'époque.En général Des objets de longue durée du cénozoïque . Voici un concept appelé Seuil d'âge, Chaque objet définit un compteur d'âge ,Une fois. Minor GC ( Dans la zone d'échange ) Après l'âge plus 1,Âge de l'objet atteint15Une fois Il sera promu à l'âge , Quand il n'y a pas assez d'espace Full GC. Bien sûr, ce paramètre peut encore passer par JVM Paramètres(-XX:MaxTenuringThreshold,Par défaut15)Pour ajuster.
(2)Les grands objets entrent directement dans la génération plus âgée.C'est - à - dire plus que Eden Espace régional, Ou plus d'une valeur de paramètre (-XX:PretenureSizeThreshold=30m,Aucune valeur par défaut).L'objectif est d'éviterEdenZone et deuxSurvivorUne grande quantité de réplication de mémoire se produit entre les zones.
(3) L'objet a été promu à l'âge avancé (Groupe).Détermination dynamique de l'âge:Si dans Survivor .La somme de toutes les tailles d'objets du même âge dans la zone est supérieure à Survivor La moitié de la taille de la zone,Les objets plus âgés ou égaux à cet âge peuvent entrer directement dans la génération plus âgée, Sans attendre l'âge de la promotion .
Trois、JVMCompletGCProcessus
Processus normal de l'objet :Eden Zone -> Survivor Zone -> Vieux temps.
CénozoïqueGC:Minor GC;Vieux tempsGC:Full GC,Que Minor GC Doucement10X.
【Résumé】: Pas assez de mémoire ,Qui déclencheGC,JVM Oui.“stop the world”,Impact grave sur le rendement.Minor GC Je ne peux pas l'éviter.,Full GC Évitez autant que possible..
【Mode de traitement】: Enregistrer le Journal des instantanés de la pile 、Analyse des fuites de mémoire、 Ajuster les paramètres de mémoire pour contrôler la fréquence de collecte des ordures , Choisir un collecteur d'ordures approprié, etc .
边栏推荐
猜你喜欢
随机推荐
Mmdeploy quick installation and instructions
UnityShader入门精要——Unity中的渲染优化技术(四)
三层架构实验
MVC three-tier architecture
Raspberry pie network remote access
Hard core, become a high-quality tester: learn to communicate with products
The tiobe programming language ranking is an indicator of the popular trend of programming languages
戏问花门酒家翁
985 test engineer is hanged. Who is more important in terms of education and experience?
掌握 Shell,一篇就够了!
MCS:离散随机变量——Uniform分布
物联网开源开发平台 Shifu 开放内测!第一版技术文档发布
C language stack implementation
JDBC入门学习(三)之事务回滚功能的实现
计算欧式距离和余弦相似度
如何进行探索性数据分析
Implementation of the rotation chart
UI automation positioning edge -xpath actual combat
[microservices | Nacos] Nacos realizes data isolation of multi environment and multi tenant
树莓派网络远程访问








