Maison Java javaDidacticiel algorithme de récupération de place jvm

algorithme de récupération de place jvm

Aug 19, 2017 pm 01:52 PM
回收 垃圾 算法

Nous savons tous que la plus grande différence entre le langage Java et le langage C est le recyclage automatique de la mémoire. Alors, comment la JVM contrôle-t-elle le recyclage de la mémoire ? Cet article présentera plusieurs algorithmes de garbage collection JVM pour comprendre les bases du recyclage de la mémoire. principe.

arrêter le monde

Avant d'introduire l'algorithme de collecte des ordures, nous devons d'abord comprendre le mot "arrêter le monde", arrêter le monde se produit lors de l'exécution d'un certain algorithme de garbage collection. Afin d'effectuer le garbage collection, la JVM exécutera temporairement l'application Java et attendra que le garbage collection soit terminé avant de continuer à s'exécuter. Si vous avez utilisé JMeter pour tester un programme Java, vous constaterez peut-être que pendant le test, le programme Java a des pauses irrégulières. En fait, il s'agit de "arrêter le monde". Pendant la pause, la JVM effectue un garbage collection. Donc, réduire autant que possible le temps nécessaire pour arrêter le monde est notre objectif principal dans l'optimisation de la JVM. Examinons ensuite les algorithmes courants de garbage collection actuellement disponibles.

Méthode de comptage de références

La méthode de comptage de références, comme son nom l'indique, compte le nombre de fois qu'un objet est référencé lors d'un décompte de références. est augmenté, la méthode de comptage de référence est augmentée de 1. Diminuer le compte de référence de un le réduit de 1.

algorithme de récupération de place jvm

La figure ci-dessus montre que trois références Teacher pointent vers l'objet Teacher dans le tas, puis le nombre de références du L'objet Enseignant est 3 , et ainsi de suite, le nombre de références de l'objet Étudiant est 2.

algorithme de récupération de place jvm

La figure ci-dessus montre que la référence de l'objet Enseignant est réduit à 2, La référence de l'objet Student est réduite à 0 (la raison de la réduction est que la référence pointe vers null, comme Teacher3=null Selon l'algorithme de comptage de références, l'espace mémoire de l'objet Student). sera récupéré.

Le principe de l'algorithme de comptage de références est très simple et est l'algorithme de recyclage le plus primitif. Cependant, cet algorithme n'est pas utilisé en Java pour 2 raisons. et 2. Incapable de gérer les problèmes de référence circulaire.

Par exemple, l'objet Teacher fait référence à l'objet Student, et l'objet Student fait référence à l'objet Teacher. Dans ce cas, l'objet ne sera jamais recyclé.

Marquer et effacer

Algorithme de marquage et d'effacement, qui est la base de nombreux algorithmes de collecte des ordures. En termes simples, il y a deux étapes : marquer et effacer.

Mark: Traverser toutes les GC Roots et définir les objets accessibles depuis GC Roots comme objets vivants

Clear: Traverser le tas Tous les objets dans , les objets qui ne sont pas marqués comme accessibles seront effacés

algorithme de récupération de place jvm

Faites attention aux objets gris dans l'algorithme de récupération de place jvm ci-dessus, car ils ne peuvent pas être traversés depuis la racine GC (bien qu'ils aient eux-mêmes des relations de référence, ils ne peuvent pas être traversés depuis la racine GC), ils ne sont donc pas marqués comme objets vivants et seront recyclés pendant le processus de nettoyage.

Ce qui doit être noté ici, c'est que lors de l'exécution de l'algorithme d'effacement des marques, "arrêter le monde" se produira, permettant au programme Java de faire une pause et d'attendre pour s'assurer qu'il y aura Aucune nouvelle entrée n'est générée pendant le processus d'effacement des marques. Pourquoi le programme Java doit-il être mis en pause ? Par exemple, si un nouvel objet est généré une fois le processus de marquage terminé et que l'objet a manqué la période de marquage, alors lors du processus de nettoyage ultérieur, l'objet nouvellement généré sera considéré comme non marqué car il n'a pas été marqué. Si un objet inaccessible est effacé, le programme générera une erreur. Par conséquent, lorsque l'algorithme d'effacement des marques sera exécuté, le programme Java sera suspendu, ce qui entraînera « l'arrêt du monde ».

Ensuite, nous résumons l'algorithme de marquage et d'effacement :

1 Parce qu'il implique beaucoup de travail de traversée de la mémoire, les performances d'exécution sont faibles. . Cela entraînera également un temps d'arrêt du monde plus long et une réduction du débit du programme Java

2. Nous avons remarqué qu'une fois l'objet effacé, l'objet effacé laisse un espace vacant ; d'espace dans la mémoire, provoquant une discontinuité de la mémoire et un gaspillage d'espace.

Voyons ensuite si d'autres algorithmes peuvent améliorer ces problèmes ?

Compression des balises

Vous avez peut-être pensé à l'algorithme de compression des marques. Il est basé sur l'algorithme de suppression des marques et ajoute un processus de compression.

algorithme de récupération de place jvm

Une fois l'effacement des marques terminé, l'espace mémoire est compressé pour économiser de l'espace mémoire et résoudre le problème de l'effacement des marques. Mémoire d’algorithme. Problème de discontinuité.

Notez que l'algorithme de compression des marques produira également "arrêter le monde" et ne pourra pas être exécuté simultanément avec le programme Java. Pendant le processus de compression, les adresses mémoire de certains objets changeront et le programme Java ne pourra qu'attendre la fin de la compression avant de continuer.

Algorithme de copie

L'algorithme de copie divise simplement la mémoire en deux parties, mais n'en utilise qu'une lors du garbage collection, copiez la. les objets survivants dans la mémoire utilisée vers une autre mémoire vierge, et enfin effacer les objets dans l'espace mémoire utilisé pour terminer le garbage collection.

algorithme de récupération de place jvm

algorithme de récupération de place jvm

algorithme de récupération de place jvm

algorithme de récupération de place jvm

Copier la balise relative de l'algorithme L'algorithme de compression est plus concis et efficace, mais ses défauts sont également évidents. Il ne convient pas aux situations où il existe de nombreux objets survivants, car de nombreux objets doivent être copiés et les performances de copie sont donc médiocres. L'algorithme de copie est souvent utilisé dans la nouvelle génération dans l'espace mémoire, car il y a moins d'objets survivants dans la nouvelle génération et le coût de copie est inférieur. Un autre inconvénient est son coût élevé d'occupation de l'espace mémoire, car il copie les objets sur la base de deux espaces mémoire et n'utilise qu'un seul espace mémoire pendant le cycle de non-garbage collection, ce qui entraîne une faible utilisation de la mémoire.

Résumé

Ci-dessus, nous avons présenté les algorithmes courants de collecte des ordures. Chacun de ces algorithmes a ses propres avantages et inconvénients, mais ce ne sont pas les mêmes. C'est la même chose dans la JVM. Au lieu d'utiliser simplement un algorithme spécifique, vous utilisez quelque chose appelé un garbage collector. Le garbage collector peut être considéré comme une combinaison différente d'une série d'algorithmes. Ce n'est qu'en utilisant le garbage collector approprié dans différents scénarios que vous pouvez obtenir. deux fois le résultat avec la moitié de l'effort. Notre prochain article présentera le garbage collector.

Matériel de référence :

"Machine virtuelle Java pratique" Ge Yiming

"Compréhension approfondie de Machine virtuelle Java "Machine (2e édition)》Zhou Zhiming

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

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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)

CLIP-BEVFormer : superviser explicitement la structure BEVFormer pour améliorer les performances de détection à longue traîne CLIP-BEVFormer : superviser explicitement la structure BEVFormer pour améliorer les performances de détection à longue traîne Mar 26, 2024 pm 12:41 PM

Écrit ci-dessus et compréhension personnelle de l'auteur : À l'heure actuelle, dans l'ensemble du système de conduite autonome, le module de perception joue un rôle essentiel. Le véhicule autonome roulant sur la route ne peut obtenir des résultats de perception précis que via le module de perception en aval. dans le système de conduite autonome, prend des jugements et des décisions comportementales opportuns et corrects. Actuellement, les voitures dotées de fonctions de conduite autonome sont généralement équipées d'une variété de capteurs d'informations de données, notamment des capteurs de caméra à vision panoramique, des capteurs lidar et des capteurs radar à ondes millimétriques pour collecter des informations selon différentes modalités afin d'accomplir des tâches de perception précises. L'algorithme de perception BEV basé sur la vision pure est privilégié par l'industrie en raison de son faible coût matériel et de sa facilité de déploiement, et ses résultats peuvent être facilement appliqués à diverses tâches en aval.

Implémentation d'algorithmes d'apprentissage automatique en C++ : défis et solutions courants Implémentation d'algorithmes d'apprentissage automatique en C++ : défis et solutions courants Jun 03, 2024 pm 01:25 PM

Les défis courants rencontrés par les algorithmes d'apprentissage automatique en C++ incluent la gestion de la mémoire, le multithread, l'optimisation des performances et la maintenabilité. Les solutions incluent l'utilisation de pointeurs intelligents, de bibliothèques de threads modernes, d'instructions SIMD et de bibliothèques tierces, ainsi que le respect des directives de style de codage et l'utilisation d'outils d'automatisation. Des cas pratiques montrent comment utiliser la bibliothèque Eigen pour implémenter des algorithmes de régression linéaire, gérer efficacement la mémoire et utiliser des opérations matricielles hautes performances.

Explorez les principes sous-jacents et la sélection d'algorithmes de la fonction de tri C++ Explorez les principes sous-jacents et la sélection d'algorithmes de la fonction de tri C++ Apr 02, 2024 pm 05:36 PM

La couche inférieure de la fonction de tri C++ utilise le tri par fusion, sa complexité est O(nlogn) et propose différents choix d'algorithmes de tri, notamment le tri rapide, le tri par tas et le tri stable.

L'intelligence artificielle peut-elle prédire la criminalité ? Explorez les capacités de CrimeGPT L'intelligence artificielle peut-elle prédire la criminalité ? Explorez les capacités de CrimeGPT Mar 22, 2024 pm 10:10 PM

La convergence de l’intelligence artificielle (IA) et des forces de l’ordre ouvre de nouvelles possibilités en matière de prévention et de détection de la criminalité. Les capacités prédictives de l’intelligence artificielle sont largement utilisées dans des systèmes tels que CrimeGPT (Crime Prediction Technology) pour prédire les activités criminelles. Cet article explore le potentiel de l’intelligence artificielle dans la prédiction de la criminalité, ses applications actuelles, les défis auxquels elle est confrontée et les éventuelles implications éthiques de cette technologie. Intelligence artificielle et prédiction de la criminalité : les bases CrimeGPT utilise des algorithmes d'apprentissage automatique pour analyser de grands ensembles de données, identifiant des modèles qui peuvent prédire où et quand les crimes sont susceptibles de se produire. Ces ensembles de données comprennent des statistiques historiques sur la criminalité, des informations démographiques, des indicateurs économiques, des tendances météorologiques, etc. En identifiant les tendances qui pourraient échapper aux analystes humains, l'intelligence artificielle peut donner du pouvoir aux forces de l'ordre.

Algorithme de détection amélioré : pour la détection de cibles dans des images de télédétection optique haute résolution Algorithme de détection amélioré : pour la détection de cibles dans des images de télédétection optique haute résolution Jun 06, 2024 pm 12:33 PM

01Aperçu des perspectives Actuellement, il est difficile d'atteindre un équilibre approprié entre efficacité de détection et résultats de détection. Nous avons développé un algorithme YOLOv5 amélioré pour la détection de cibles dans des images de télédétection optique haute résolution, en utilisant des pyramides de caractéristiques multicouches, des stratégies de têtes de détection multiples et des modules d'attention hybrides pour améliorer l'effet du réseau de détection de cibles dans les images de télédétection optique. Selon l'ensemble de données SIMD, le mAP du nouvel algorithme est 2,2 % meilleur que YOLOv5 et 8,48 % meilleur que YOLOX, permettant ainsi d'obtenir un meilleur équilibre entre les résultats de détection et la vitesse. 02 Contexte et motivation Avec le développement rapide de la technologie de télédétection, les images de télédétection optique à haute résolution ont été utilisées pour décrire de nombreux objets à la surface de la Terre, notamment des avions, des voitures, des bâtiments, etc. Détection d'objets dans l'interprétation d'images de télédétection

Application d'algorithmes dans la construction de 58 plateformes de portraits Application d'algorithmes dans la construction de 58 plateformes de portraits May 09, 2024 am 09:01 AM

1. Contexte de la construction de la plateforme 58 Portraits Tout d'abord, je voudrais partager avec vous le contexte de la construction de la plateforme 58 Portraits. 1. La pensée traditionnelle de la plate-forme de profilage traditionnelle ne suffit plus. La création d'une plate-forme de profilage des utilisateurs s'appuie sur des capacités de modélisation d'entrepôt de données pour intégrer les données de plusieurs secteurs d'activité afin de créer des portraits d'utilisateurs précis. Elle nécessite également l'exploration de données pour comprendre le comportement et les intérêts des utilisateurs. et besoins, et fournir des capacités côté algorithmes ; enfin, il doit également disposer de capacités de plate-forme de données pour stocker, interroger et partager efficacement les données de profil utilisateur et fournir des services de profil. La principale différence entre une plate-forme de profilage d'entreprise auto-construite et une plate-forme de profilage de middle-office est que la plate-forme de profilage auto-construite dessert un seul secteur d'activité et peut être personnalisée à la demande. La plate-forme de mid-office dessert plusieurs secteurs d'activité et est complexe ; modélisation et offre des fonctionnalités plus générales. 2.58 Portraits d'utilisateurs de l'arrière-plan de la construction du portrait sur la plate-forme médiane 58

Ajoutez SOTA en temps réel et montez en flèche ! FastOcc : un algorithme Occ plus rapide et convivial pour le déploiement est là ! Ajoutez SOTA en temps réel et montez en flèche ! FastOcc : un algorithme Occ plus rapide et convivial pour le déploiement est là ! Mar 14, 2024 pm 11:50 PM

Écrit ci-dessus & La compréhension personnelle de l'auteur est que dans le système de conduite autonome, la tâche de perception est un élément crucial de l'ensemble du système de conduite autonome. L'objectif principal de la tâche de perception est de permettre aux véhicules autonomes de comprendre et de percevoir les éléments environnementaux environnants, tels que les véhicules circulant sur la route, les piétons au bord de la route, les obstacles rencontrés lors de la conduite, les panneaux de signalisation sur la route, etc., aidant ainsi en aval modules Prendre des décisions et des actions correctes et raisonnables. Un véhicule doté de capacités de conduite autonome est généralement équipé de différents types de capteurs de collecte d'informations, tels que des capteurs de caméra à vision panoramique, des capteurs lidar, des capteurs radar à ondes millimétriques, etc., pour garantir que le véhicule autonome peut percevoir et comprendre avec précision l'environnement environnant. éléments , permettant aux véhicules autonomes de prendre les bonnes décisions pendant la conduite autonome. Tête

Algorithme de recommandation d'actualités basé sur l'amélioration globale des graphiques Algorithme de recommandation d'actualités basé sur l'amélioration globale des graphiques Apr 08, 2024 pm 09:16 PM

Auteur | Évalué par Wang Hao | L'application Chonglou News est un moyen important pour les gens d'obtenir des sources d'informations dans leur vie quotidienne. Vers 2010, les applications d'information étrangères populaires comprenaient Zite et Flipboard, tandis que les applications d'information nationales populaires étaient principalement les quatre principaux portails. Avec la popularité des produits de recommandation d'actualités d'une nouvelle ère représentés par Toutiao, les applications d'actualités sont entrées dans une nouvelle ère. Quant aux entreprises technologiques, quelle qu'elles soient, tant qu'elles maîtrisent la technologie sophistiquée des algorithmes de recommandation d'actualités, elles auront fondamentalement l'initiative et la voix au niveau technique. Aujourd'hui, jetons un coup d'œil à un article du RecSys2023 Best Long Paper Nomination Award : GoingBeyondLocal:GlobalGraph-EnhancedP.

See all articles