Maison Java javaDidacticiel Hotspot - garbage collector (JVM) expliqué en détail

Hotspot - garbage collector (JVM) expliqué en détail

Jul 17, 2017 am 11:51 AM
hotspot 回收 垃圾

Les deux premiers articles "Introduction à JVM - Runtime Data Area" et "JVM Common Garbage Collection Algorithms" mentionnaient en fait les spécifications JVM et les algorithmes de garbage collection couramment utilisés, en particulierJVM Il y a en fait plus d'une implémentation, il y a JRockit, J9 en attente, bien sûr. le plus célèbre est HotSpot JVM. Voici le schéma d'architecture global de HotSpot JVM Cet article se concentre sur le garbage collector (Garbage dans HotSpot<.>Collectionneur).

Les éboueurs

HotSpot existants, leurs relations et leur champ d'application sont comme indiqué ci-dessous :

Parmi eux,

G1 GC se situe très visiblement entre la nouvelle génération et l'ancienne génération. , on devine que ce G1 GC peut être utilisé aussi bien dans la nouvelle génération que dans l'ancienne génération. On peut en effet dire que G1. est un nouveau concept qui fait époqueGC.

Avant de présenter le garbage collector ci-dessus, nous devons d'abord expliquer le mode

JVM de la machine virtuelle Client et Mode serveur, ce que Java peut faire, c'est être client. En termes simples, c'est GUI. Application de bureau, qui peut également être utilisée côté serveur. Deux modes : le mode Client démarre rapidement et a des performances médiocres après le démarrage ; le mode Serveur démarre lentement et a des performances plus élevées après le démarrage.

GC série(-XX :+UseSerialGC, algorithme de copie, nouvelle génération)

Il s'agit d'un éboueur plus ancien, je le comprends comme

"Simple et grossier ", les méthodes simples et grossières peuvent souvent gérer des environnements simples, en faitSerial GCExactement ceci en mode Client. Il s'agit d'un garbage collector série. Serial signifie que même un processeur multicœur n'aura pas plusieurs threads à collecter en parallèle. Tandis qu'en série, les autres threads fonctionnant normalement doivent également cesser de fonctionner, ce qui est appelé « Arrêtez le. monde ». C’est en fait facile à comprendre. Lorsque vous nettoyez les poubelles, vous ne voulez pas que quelqu’un les jette en même temps. Bien sûr, le Serial GC est presque le même dans le mode HotSpot JVMServeur d'aujourd'hui. Abandonné. De plus, il fonctionne en utilisant le garbage collection "algorithme de copie " fonctionne en Java La nouvelle génération du tas.

ParNouveau GC(-XX :+Utilisation ParNewGC, Algorithme de copie, Nouvelle génération)

 ParNew GC est en fait une version multithread de Serial GC. Comme mentionné ci-dessus, le Serial GCmême dans un environnement CPU multicœur est un thread unique pour le recyclage de la mémoire inutile. Ce côté du garbage collector peut recycler la mémoire inutile dans un environnement multithread. Ce multithread n'est qu'un multithread de garbage collection, plutôt que de s'exécuter simultanément avec les threads utilisateur. Et seulement il peut être utilisé avec le CMS garbage collector d'ancienne génération, et CMS est exactement le garbage collector qui fait époque,. ainsi, lorsque le garbage collector ancienne génération de JVM est CMS, le garbage collector nouvelle génération est généralement ParNew GC.

GC Parallèle (-XX:+UseParallelGC, algorithme de réplication, nouvelle génération)

Il est quelque peu similaire à ParaNew GC À en juger par son nom, c'est aussi un collecteur multithread parallèle. Nous avons déjà mentionné que lors du GC nous devons « Arrêter le monde » Plus le temps de pause est court, mieux c'est. , de nombreux garbage collectors (y compris les deux premiers) se concentrent sur la manière d'améliorer le temps de pause. Et Parallel GC se concentre sur le débit. Il se concentre sur la durée globale de la collecte des déchets. Si la durée globale de la collecte des déchets est plus courte, le débit est élevé et le CPU peut y consacrer plus de temps. . En termes d'exécution de la tâche, , (débit = durée d'exécution de la tâche / (durée d'exécution de la tâche <.> + Heure de la collecte des déchets)) .

Ancien GC en série(-XX:+UseSerialOldGC, tags-Algorithme de compression, ancienne génération)

Il s'agit de la version ancienne génération de

Serial GC Il est également monothread et peut également. être utilisé avec Parallel GC est utilisé en conjonction avec son ancienne génération GC.

Ancien GC parallèle(-XX:+UseParallelOldGC, marqué - algorithme de compression, ancienne génération)

Afin d'éviter le dilemme de choisir Parallel GC dans la nouvelle génération et de choisir uniquement Serial Old GC dans l'ancienne génération, est apparu >L'ancienne version de Parallel GC——Parallel Old GC. Par conséquent, si vous utilisez la combinaison de Parallel GC et Parallel Old GC pour certaines constantes qui nécessitent un débit élevé, ce sera un bon choix.

☆Concurrent Mark Sweep(CMS) GC (-XX:+UseConcMarkSweepGC, marque-Algorithme clair, ancienne génération)

CMS GC occupe presque JVM La moitié du garbage collector d'ancienne génération, sa signification historique est que le thread de garbage collection peut presque fonctionner en même temps que le thread utilisateur. "Presque"C'est parce que cela ne peut toujours pas être fait complètement inutile"Arrêtez le monde", mais cela réduit au maximum le temps de pause.

L'ensemble de son processus de collecte des déchets peut être divisé en les 4 étapes suivantes :

  1. Marquage initial

  2. Marquage simultané

  3. Remarquage

  4. Nettoyage simultané

 Ces4 étapes"Marque initiale" et " Remarque"nécessite une courte période de "Arrêtez le monde", le processus de marquage simultané est en fait Ce qui précède consiste à travailler avec le fil utilisateur en même temps, c'est-à-dire "Jeter les ordures et nettoyer en même temps", ce qui posera un problème, si la génération de déchets se produit après le marquage, alors les déchets devront attendre la prochaine fois pour être recyclés. Bien entendu, une fois le marquage terminé, les déchets n'entreront naturellement pas en conflit avec le thread utilisateur et le processus de nettoyage peut être traité en même temps que le thread utilisateur. L'un des problèmes les plus évidents et inévitables de ce ramasse-miettes est qu'il utilise la "marque-Effacer algorithme, ce qui signifie qu'il compressera différemment les objets survivants, ce qui entraînera le problème de fragmentation de l'espace mémoire. S'il est nécessaire d'allouer un grand espace mémoire continu, alors Full GC ne peut être déclenché qu'une seule fois. L'article précédent "Algorithmes communs de collecte des déchets pour JVM" mentionnait que le nettoyage des déchets dans la nouvelle génération s'appelle "GC mineur" , et le nettoyage des déchets dans l'ancienne génération est appelé "Major GC" , et "Full GC" déclenche un garbage collection sur l'ensemble du tas. Il est concevable que le coût soit. assez élevé, et À ce stade, le thread utilisateur doit être suspendu, et il ne peut être ajusté et optimisé qu'en fonction de scénarios d'utilisation spécifiques en ajustant les paramètres du CMS GC.

Garbage-First (G1) GC (-XX:+UseG1GC)

G1 GC est différent de tous les éboueurs précédents Comme on peut le voir sur la deuxième photo du début, il couvre la nouvelle génération et l'ancienne génération, ou c'est tout simplement logiquement Keep . "Nouvelle Génération" et "Ancienne Génération"Cette instruction n'existe en fait pas dans la génération de mémoire. Il s'agit seulement d'une version expérimentale dans JDK6 dans JDK7u4. ne sera officiellement commercialisé que plus tard. J'expliquerai ce garbage collector séparément. De plus, son adresse papier est : http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.63. .6386&rep=rep1&type=pdf.

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!

Déclaration de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment configurer Win7 comme point d'accès Wi-Fi Comment configurer Win7 comme point d'accès Wi-Fi Dec 31, 2023 pm 10:14 PM

Le système win7 est un système performant reconnu par les utilisateurs. Récemment, de nombreux amis Win7 se demandent comment créer un point d'accès Wi-Fi dans Win7 ? Aujourd'hui, l'éditeur vous expliquera comment ouvrir et configurer le hotspot Wifi win7. Jetons un coup d'œil. Comment configurer un point d'accès Wi-Fi dans Win7 : 1. Pour activer le point d'accès Wi-Fi, vous devez d'abord disposer d'une carte réseau sans fil. L'ordinateur portable est livré avec. Si vous avez un PC, vous pouvez acheter un point d'accès Wi-Fi portable pour partager le Wi-Fi. ne pas être décrit ici ; appuyez d'abord sur le clavier. Appuyez sur la touche Windows de l'ordinateur pour ouvrir le "Menu Démarrer", entrez "cmd" dans la barre de recherche en dessous et cliquez sur l'icône en forme de loupe pour rechercher 2. Après avoir trouvé le programme CMD ; dans les résultats de la recherche, faites un clic droit pour ouvrir le menu et sélectionnez "

Tutoriel étape par étape sur le nettoyage des fichiers indésirables du système sous Windows 10 Tutoriel étape par étape sur le nettoyage des fichiers indésirables du système sous Windows 10 Jul 13, 2023 pm 09:53 PM

Certains utilisateurs ont rencontré le problème du nettoyage des fichiers indésirables par le système Win10 lors de l'utilisation de leur ordinateur. Comment devrions-nous résoudre le problème du nettoyage des fichiers indésirables par le système Win10 ? De nos jours, de nombreux utilisateurs ne savent toujours pas comment gérer la situation de nettoyage des déchets dans le système Win10, jetons donc un coup d'œil au didacticiel étape par étape sur le nettoyage des fichiers indésirables du système dans Win10. regarder. 1. Sur le bureau de l'ordinateur, cliquez sur « Ce PC » et gérez. 2. Sélectionnez Gestion des disques. 3. Sélectionnez le disque que vous souhaitez nettoyer, cliquez avec le bouton droit et sélectionnez Propriétés. 4. Cliquez sur le bouton « Nettoyage de disque » en bas de la page. 5. Dans l'interface qui apparaît, sélectionnez les fichiers que vous souhaitez nettoyer, cliquez sur « OK » et cliquez sur « Supprimer les fichiers ». Ce qui précède est un didacticiel étape par étape sur la façon de nettoyer les fichiers indésirables du système sous Windows 10. J'espère

Comment nettoyer les fichiers indésirables dans Win10. Apprenez à nettoyer et réparer les fichiers indésirables. Comment nettoyer les fichiers indésirables dans Win10. Apprenez à nettoyer et réparer les fichiers indésirables. Jan 12, 2024 am 08:18 AM

À mesure que l'ordinateur est utilisé pendant une longue période, il y a de plus en plus de fichiers indésirables dans le lecteur C. L'existence de fichiers indésirables affectera dans une certaine mesure la vitesse de fonctionnement du système, de sorte que l'ordinateur se sentira de plus en plus lent. Pour que l'ordinateur fonctionne correctement, il n'est pas nécessaire que cela affecte le fonctionnement normal. Ci-dessous, l'éditeur vous montrera comment nettoyer les ordures dans Win10. Win10 est un nouveau système. De nombreux utilisateurs ont déjà installé la version officielle de Win10. Cependant, récemment, de nombreux amis ont signalé qu'après l'installation de Win10, le disque système était devenu trop encombré, ce qui ralentissait de plus en plus la vitesse de fonctionnement du système. Alors, comment nettoyer Win10. Qu'en est-il des déchets système ? Ci-dessous, l'éditeur partagera avec vous comment nettoyer complètement votre système win10. Comment nettoyer les fichiers indésirables sur le bureau Windows 10

Vous apprendre en détail comment nettoyer les fichiers indésirables sur le lecteur D dans Win11 Vous apprendre en détail comment nettoyer les fichiers indésirables sur le lecteur D dans Win11 Jan 05, 2024 pm 11:53 PM

Chaque utilisateur possède essentiellement son propre lecteur D pour télécharger des logiciels, mais dans le dernier système Win11, beaucoup ne savent toujours pas comment nettoyer les fichiers indésirables qu'il contient, c'est pourquoi je vais vous proposer aujourd'hui un didacticiel détaillé sur la façon de nettoyer. le lecteur D indésirable dans Win11, venez apprendre à le faire fonctionner ensemble. Comment nettoyer les fichiers indésirables du lecteur D dans Win11 : 1. Entrez d'abord Cet ordinateur sur le bureau, puis cliquez avec le bouton droit sur votre lecteur D. 2. Cliquez ensuite sur les paramètres "Propriétés" dans le menu. 3. Ensuite, vous pouvez voir la fonction "Nettoyage de disque" sous Outils généraux. 4. Enfin, cliquez sur « Nettoyer les fichiers système » qui semble résoudre tous les problèmes.

Comment s'assurer que le fonctionnement normal du système n'est pas affecté lors du nettoyage des déchets du lecteur C dans Win7 Comment s'assurer que le fonctionnement normal du système n'est pas affecté lors du nettoyage des déchets du lecteur C dans Win7 Dec 28, 2023 am 09:54 AM

Le lecteur C contient généralement des fichiers importants de notre ordinateur. S'ils sont supprimés accidentellement, cela affectera directement l'utilisation de notre ordinateur. Alors, sous le système Win7, comment nettoyer les fichiers inutiles sur le lecteur C afin de ne pas supprimer les fichiers système par erreur ? tissu? Jetons un coup d'oeil ensemble maintenant. Comment nettoyer les fichiers indésirables du lecteur C dans Windows 7 sans affecter le système 1. Double-cliquez sur l'icône de l'ordinateur pour accéder au gestionnaire de ressources. 2. Cliquez avec le bouton droit sur le lecteur C et sélectionnez Propriétés. 3. Cliquez sur Général et cliquez sur Nettoyage de disque. 4. Vérifiez les fichiers qui doivent être nettoyés et cliquez sur OK.

L'activité de recyclage écologique de Rookie a été améliorée et vous pouvez recevoir 0,1 yuan d'argent de recyclage à chaque fois. L'activité de recyclage écologique de Rookie a été améliorée et vous pouvez recevoir 0,1 yuan d'argent de recyclage à chaque fois. Oct 31, 2023 pm 06:29 PM

Ce site Web a rapporté le 31 octobre que Cainiao améliorerait son recyclage vert lors du Double 11 de cette année. En plus du recyclage express des emballages effectué les années précédentes, les vêtements, les chaussures, les livres usagés et d'autres catégories peuvent être recyclés. Sur la base de leur retour à la boîte pour échanger des œufs au cours des deux années précédentes, les recrues se sont surclassées pour participer à des activités permettant de recevoir des fonds de recyclage. Du 1er au 20 novembre, les consommateurs peuvent recevoir de l'argent de recyclage en déposant l'emballage express après avoir récupéré le colis à la gare de Cainiao, puis en scannant le code sur place ou en promettant de restituer la boîte dans l'application Cainiao, ou en prenant rendez-vous en ligne pour recycler. vêtements usagés, etc. L'emballage express recyclé sera utilisé pour l'expédition secondaire ou le recyclage. Ce site a remarqué que les activités de recyclage de l'or sont divisées en trois types : boîtes de retour, recyclage et partage. Boîtes de retour (cartons express) : 0,1 yuan/heure, avec une limite de retour maximale de 4 fois par utilisateur et par jour. Prix pour le recyclage (ancien. vêtements et autres articles)

Comment nettoyer les fichiers indésirables du lecteur C Comment nettoyer les fichiers indésirables du lecteur C Jan 12, 2024 pm 05:07 PM

Méthodes pour nettoyer les fichiers indésirables du lecteur C : 1. Désactivez la fonction d'hibernation ; 2. Nettoyez les fichiers temporaires ; 3. Transférez le logiciel sur d'autres disques ; 4. Désinstallez les applications inutiles ; 5. Nettoyez les fichiers Internet temporaires ; emplacement de stockage ; 7. Utilisez des outils de nettoyage de disque ; 8. Sauvegardez régulièrement les données importantes. Introduction détaillée : 1. Désactivez la fonction d'hibernation. La fonction d'hibernation enregistrera les données de la mémoire sur le disque dur, occupant beaucoup d'espace. Vous pouvez désactiver la fonction d'hibernation pour libérer de l'espace. . Les fichiers temporaires sont également un facteur qui occupe de l'espace sur le lecteur C, etc.

Explication détaillée du mécanisme de récupération de place Java et explication détaillée de l'optimisation des performances. Explication détaillée du mécanisme de récupération de place Java et explication détaillée de l'optimisation des performances. Feb 19, 2024 pm 07:40 PM

Le mécanisme de récupération de place de Java est une fonction clé de la gestion automatique de la mémoire de la JVM. Vous trouverez ci-dessous des instructions détaillées sur le garbage collection Java et l'optimisation des performances. Mécanisme de récupération de place : Cycle de vie des objets : En Java, lorsque les objets sont créés, ils sont alloués dans la mémoire tas. Les objets deviennent inaccessibles lorsqu'ils ne sont plus référencés. Le mécanisme de récupération de place est chargé d'identifier et de nettoyer ces objets inaccessibles pour récupérer de l'espace mémoire. Algorithme de récupération de place : l'algorithme de récupération de place de Java est principalement divisé en deux types : l'algorithme de marquage et l'algorithme de copie. L'algorithme de marquage et de balayage marque et nettoie les objets inaccessibles, mais peut provoquer une fragmentation de la mémoire. L'algorithme de copie divise la mémoire en deux zones. Lorsqu'une zone est pleine, les objets survivants sont copiés dans l'autre zone et la zone d'origine est effacée.

See all articles