Maison >Java >javaDidacticiel >Tutoriels d'introduction à l'apprentissage des machines virtuelles : 10 didacticiels d'introduction recommandés pour l'apprentissage des machines virtuelles base zéro
1 : Module système technologique Java Figure 2 : Modèle de zone mémoire JVM 1. La zone méthode est également appelée « génération permanente » et « non tas ». Elle est utilisée pour stocker des informations de classe, des constantes, des variables statiques, etc. chargée par la machine virtuelle. Zone mémoire partagée par les threads. La valeur minimale par défaut est de 16 Mo et la valeur maximale est de 64 Mo. Vous pouvez limiter la taille de la zone de méthode via les paramètres -XX:PermSize et -XX:MaxPermSize. Pool de constantes d'exécution : il fait partie de la zone des méthodes. En plus des informations de description telles que la version de la classe, les champs, les méthodes, les interfaces, etc., il existe également un pool de constantes dans le fichier de classe, qui est utilisé pour stocker divers symboles. références générées par le compilateur. Cette partie du contenu sera placée dans le pool de constantes d'exécution dans la zone des méthodes après le chargement de la classe. 2. La pile de machine virtuelle décrit le modèle de mémoire d'exécution de la méthode Java : lorsque chaque méthode est exécutée, un "cadre de pile" est créé pour stocker les tables de variables locales (y compris les paramètres), les piles d'opérations, les sorties de méthode et d'autres informations. Le processus depuis chaque méthode appelée jusqu'à la fin de l'exécution correspond au processus d'un cadre de pile depuis son insertion dans la pile jusqu'à sa sortie de la pile dans la pile de la machine virtuelle. Le cycle de déclaration est le même que celui du thread et est privé du thread. Stockage de table de variables locales
1. Java Virtual Machine Learning - Modèle de mémoire d'architecture
Introduction : Également appelée « génération permanente » et « non-heap », elle est utilisée pour stocker les informations de classe, les constantes et les variables statiques chargées par la machine virtuelle. Il s'agit d'une zone mémoire partagée par chaque thread. . La valeur minimale par défaut est de 16 Mo et la valeur maximale est de 64 Mo. Vous pouvez limiter la taille de la zone de méthode via les paramètres -XX:PermSize et -XX:MaxPermSize.
2. Java Virtual Machine Learning - Accès aux objets
Introduction : L'accès aux objets implique trois zones de mémoire : la pile Java, le tas Java et la zone de méthode.
3. Java Virtual Machine Learning - Algorithme de récupération de place
Introduction : Le collecteur de suivi adopte une méthode de gestion centralisée pour enregistrer globalement l'état de référence entre les objets. Lors de l'exécution, il démarre à partir d'une série d'objets GC Roots et recherche tous les nœuds vers le bas, lorsqu'un objet ne le fait pas. Si vous avez une chaîne de référence à GC Roots, cela prouve que cet objet n'est pas disponible.
4. Java Virtual Machine Learning - Garbage Collector
Introduction : Serial Collector est un processeur de collecte de nouvelle génération, exécution monothread, utilisant un algorithme de copie. Il doit suspendre tous les autres threads de travail (threads utilisateur) lors de l'exécution du garbage collection. Il s'agit du collecteur nouvelle génération par défaut en mode client Jvm. Pour un environnement limité à un seul processeur, le collecteur série n'a aucune surcharge d'interaction avec les threads, il peut donc naturellement atteindre la plus grande efficacité de collecte sur un seul thread en se concentrant sur le garbage collection.
5. Java Virtual Machine Learning - Allocation et recyclage de la mémoire des objets
Introduction : Dans la plupart des cas, les objets sont attribué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.
Introduction : 1. Chaque fichier globals.hpp dans HotSpot vm Affiche les valeurs et paramètres par défaut initiaux de jvm
7. >Java Virtual machine learning - Outil de surveillance visuelle JDK
Introduction : L'outil JConsole se trouve dans le répertoire JDK/bin. Après avoir démarré JConsole, il recherchera automatiquement le processus jvm exécuté sur la machine locale. Aucune commande jps n'est nécessaire pour interroger et spécifier. Double-cliquez sur l'un des processus jvm pour démarrer la surveillance ou utilisez « processus distant » pour vous connecter au serveur distant.
8. Java Virtual Machine Learning - Force de référence d'objet
Introduction : Qu'il s'agisse de déterminer le nombre de références à un objet grâce à un algorithme de comptage, ou de déterminer si la chaîne de références d'objet est accessible grâce à un algorithme de recherche racine, déterminer si un objet est vivant est lié à " références".
9. Java Virtual Machine Learning - Réglage de la mémoire
Introduction : le réglage JVM concerne principalement le réglage de la gestion de la mémoire, y compris le contrôle de la taille de chaque génération et de la stratégie GC. Étant donné que GC suspendra les threads d'application lorsqu'il démarre le garbage collection, ce qui affecte sérieusement les performances, le but du réglage est de minimiser le temps de pause des threads d'application provoqué par GC et de réduire le nombre de GC complets.
10. Java Virtual Machine Learning - ClassLoader (ClassLoader)
Introduction : ClassLoader est utilisé pour charger le bytecode de classe dans la machine virtuelle Java. De manière générale, la machine virtuelle Java utilise les classes Java de la manière suivante : Les fichiers sources Java sont convertis en fichiers bytecode Java (fichiers .class) après passage via Javac. Le chargeur de classe est chargé de lire le bytecode Java et de le convertir en une instance de la classe java.lang.Class. Chacune de ces instances représente une classe Java. La situation réelle peut être plus compliquée. Par exemple, le byte code Java peut être généré dynamiquement via des outils ou téléchargé via le réseau.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!