la connaissance de la machine virtuelle Jvm

######## deux machines virtuelles Jvm connaissances détaillées ##############################
un .java HotSpot ™ 64 VM client dans VM -bit serveur
jdk1.7 -> JDK / jre / lib / i386

Deux configuration .jvm
structure jvm:

sous - classe de chargement:
responsable des informations de chargement de classe du système de fichiers ou d'un réseau.
La zone de la méthode: des
informations de classe de stockage et constant pool d' informations
pile Java:
threads de la machine virtuelle de chacun d'une pile de java privé.
java pile contient des variables locales, les paramètres de la méthode.
tas java:
stocker instance d'objet Java. Sont: la jeune génération (Eden, s0, s1), vieilles années (vieux), au nom des porteurs (permanen)

mémoire directe:
java bibliothèque NIO permet l'utilisation directe de la mémoire du programme java.
Java est en dehors de la pile de mémoire directe, d'appliquer directement à l'espace mémoire du système.
Lire et écrire des occasions fréquentes.
piles de méthodes natives:
piles de méthodes natives appellent la méthode locale est utilisée (habituellement écrit en C).
système de collecte des ordures:
sous-collecteur (série, ParNew, charognard parallèle)
collecteur complet (CMS, Série Vieux, Parall)
G1

PC registre:
chaque thread espace privé.
Si la méthode actuelle est une méthode locale, la valeur du registre PC est défini.
Si la méthode actuelle n'est pas natif, registre PC pointera à l'instruction en cours d' exécution.

Le moteur d'exécution:
la machine virtuelle Java HotSpot client (-client)
la machine virtuelle Java HotSpot Server (-server)

La figure trois structure de pile de génération .jvm et la
structure de la figure JVM de la pile:

JVM pile de génération:
New Generation:
la HotSpot divisée en blocs à la nouvelle génération, une plus grande Eden (Eden espace et deux plus petits Survivor (espace de survie, le rapport par défaut de 8: 1: 1
lorsque la zone est non Eden lorsque suffisamment d' espace est alloué, la machine virtuelle lancera un GC mineur.
vIEILLESSE: a
connu un certain nombre dans la nouvelle génération (voir le seuil spécifique survécut à l' objet de configuration de la machine virtuelle GC entrera l'ancienne époque.
GC basse fréquence, une récupération plus lente.
générations perpétuelles: l'
information de classe de stockage génération permanente, les constantes, les variables statiques, le compilateur de temps pour compiler le code et d' autres données
spécifications de la machine virtuelle Java a souligné que la collecte des ordures ne peut pas, en général ne sera pas la collecte des ordures.

Quatre algorithme garbage collection commun
(1) algorithme de comptage de référence:
Cet algorithme ne peut pas gérer le problème le plus mortel des références circulaires.
(2) l' algorithme de réplication:

(3) drapeau est effacé algorithme:

(4) étiquettes pour organiser:

Cinq éboueur .jvm
sous - collecteur
série [collecteur de série, seul thread gc. algorithme de réplication. ]
ParNew [Collecteur parallèle, une pluralité de fils gc. algorithme de réplication. ],
Parallèle similaire à la charognard [ParNew. Mettre l' accent sur le débit du système (code utilisateur durée / (course + temps de collecte des ordures de code utilisateur))]
collecteur plein
Concurrent Mark balayage
[
collecteur simultané, algorithme de balayage de marque. processus GC est divisé en quatre étapes suivantes:
1. marque initiale (marque le CMS initial)
2. marque concurrente (marque concurrente CMS: Roots GC processus Tracing)
3. réétiqueté (la remarque de la CMS)
4. Effacez simultanées (CMS de balayage simultané: est des objets morts seront libérés en place, à l' attention aucune compression ici)
]
série Old [collecteur de série, seul thread gc. Mots - clés pour organiser algorithme]
Parall Old [l'utilisation du multi-threading et « marque - finition » algorithme, la priorité de débit]
G1 [collection de partitions]


Six optimisation .JVM
(1) JDK commandes liées à l'optimisation-JVM couramment utilisé
jvisualvm
JDK pour exécuter le contrôle le plus puissant et un outil de dépannage
à des fuites de mémoire de contrôle, le suivi de la collecte des ordures, en effectuant une analyse de la mémoire, analyse de godet, l' analyse du fil.
(2) plug-in visualgc
a été téléchargé -> Ajouter plug-ins -> Installer.
(3) des paramètres communs JVM
-Xms: Taille initiale du segment
-Xmx: taille de segment maximale
-Xmn: définir la taille de la jeune génération
-Xss: Définir la taille de Java de chaque fil
de -XX: NewSize = n: ordre de la taille de la jeune génération. Tels que: 3, montrant la jeune génération à l'ancien taux de génération de 1: 3.
-XX: SurvivorRatio = n: le rapport de la surface jeune génération et deux régions Eden Survivor. Note Survivor deux zones. Tels que: 3, exprimé Eden: Survivor = 3: 2, la superficie totale d'une jeune génération Survivor 1/5
-XX: MaxPermSize = le n: définir la taille de la génération permanente
-XX: MaxTenuringThreshold: fixer l'âge maximal des ordures

Publié 20 articles originaux · louanges gagnées 0 · Vues 1197

Je suppose que tu aimes

Origine blog.csdn.net/jinhuding/article/details/104993579
conseillé
Classement