[JAVA] Démarrez avec le fonctionnement de JVM GC

introduction

Il mentionne l'algorithme GC et le rôle de chaque zone dans la zone du tas.

Il existe différents types d'algorithmes GC eux-mêmes. Les deux suivants sont les plus élémentaires.

Algorithme de base

Mark & Sweep est la norme en Java. Cependant, cela seul pose les problèmes suivants, et il est en fait étendu et mis en œuvre.

Défis de Mark & Sweep

  1. Fragmentation de la zone de mémoire
  2. Arrêtez le monde en faisant GC
  3. La charge de traitement est élevée lorsque GC est appliqué à toutes les zones de mémoire cible (Full GC).

1. Contre-mesures contre la fragmentation de la zone de tas => Copie

Si la zone inutile est libérée à plusieurs reprises, la zone vide devient inégale et rigide. En d'autres termes, le coût de traitement de la création d'un nouvel objet augmente.

Par conséquent, les algorithmes suivants sont combinés.

** C'est pourquoi il y a zone De et A zone dans la zone de tas. ** **

2. Contre-mesures contre les temps d'arrêt => Marquage simultané

C'est ce qu'on appelle un balayage de marqueurs simultanés car il ajoute cet algorithme.

3. Mesures contre la charge de traitement

Il utilise un algorithme GC générationnel. En termes simples, un nouvel objet est placé dans la nouvelle zone, le GC est fréquemment appliqué à la nouvelle zone et les objets qui ont survécu après plusieurs GC sont considérés comme continuant à survivre et sont placés dans l'ancienne zone. Un algorithme appelé FullGC lors du déplacement et des anciens sont accumulés. Au lieu de faire Full GC à chaque fois, limitez la portée de GC et répartissez la charge de GC.

Référence: GC by generation

** C'est pourquoi il y a du nouveau et de l'ancien dans la zone de tas JVM. ** **

Il existe différents types de zones de mémoire JVM basés sur l'algorithme GC.

D'après le contenu jusqu'à présent, ce qui suit peut être compris.

référence

Mécanisme de gestion de la mémoire du tas Java

Réglage JVM

De côté

Un algorithme appelé Garbage First Garbage Collection arrive ...? Garbage-First Garbage Collection

Recommended Posts

Démarrez avec le fonctionnement de JVM GC
Premiers pas avec DBUnit
Premiers pas avec Ruby
Premiers pas avec Swift
Premiers pas avec Doma-Transactions
Premiers pas avec Doma-Using Projection avec l'API Criteira
Premiers pas avec les sous-requêtes utilisant Doma avec l'API Criteria
Premiers pas avec Doma-Using Joins avec l'API Criteira
Premiers pas avec Doma - Introduction à l'API Criteria
Premiers pas avec le traitement Doma-Annotation
Premiers pas avec Java Collection
Premiers pas avec JSP et servlet
Premiers pas avec les bases de Java
Premiers pas avec Spring Boot
Premiers pas avec les modules Ruby
Premiers pas avec Doma-Dynamic Construction de clauses WHERE avec l'API Criteria
Premiers pas avec Reactive Streams et l'API JDK 9 Flow
Premiers pas avec Java_Chapitre 5_Exercices pratiques 5_4
[Google Cloud] Premiers pas avec Docker
Premiers pas avec Docker avec VS Code
Revenir au début, démarrer avec Java ② Instructions de contrôle, instructions de boucle
Résumer les principaux points de démarrage avec JPA appris avec Hibernate
Premiers pas avec Doma-Criteria API Cheet Sheet
Premiers pas avec Ruby pour les ingénieurs Java
Premiers pas avec Docker pour Mac (installation)
Introduction au test de paramétrage dans JUnit
Introduction à Java à partir de 0 Partie 1
Premiers pas avec Ratpack (4) - Routage et contenu statique
Premiers pas avec Language Server Protocol avec LSP4J
Premiers pas avec la création d'ensembles de ressources avec ListResoueceBundle
Premiers pas avec Java_Chapter 8_A propos des "Instances" et des "Classes"
Liens et mémos pour démarrer avec Java (pour moi-même)
[Obsolète] Premiers pas avec GC et la gestion de la mémoire pour les machines virtuelles Java Je n'ai pas compris
Premiers pas avec Java 1 Assembler des éléments similaires
Premiers pas avec Kotlin à envoyer aux développeurs Java
J'ai essayé de démarrer avec Gradle sur Heroku
Prise en main des programmes Java à l'aide de Visual Studio Code
Premiers pas avec les anciens ingénieurs Java (Stream + Lambda)
Commencez avec Java sans serveur avec le framework léger Micronaut!
Organiser le mécanisme de Java GC
Augmenter GC avec jcmd
Commencez avec Gradle
Premiers pas avec Java et création d'un éditeur Ascii Doc avec JavaFX
[Java] [Play Framework] Jusqu'à ce que le projet soit démarré avec Gradle
Il est maintenant temps de commencer avec l'API Stream
Premiers pas avec Git Hub Container Registry au lieu de Docker Hub