web-dev-qa-db-fra.com

Le garbage collector par défaut pour Java 8

Quel est le ramasse-miettes par défaut pour Java 8?

Lorsque je vérifie les beans JMX, ils révèlent qu'il s'agit du collecteur parallèle pour la nouvelle génération et de l'ancien collecteur série pour l'ancienne génération.

78
Code Junkie

Éboueurs par défaut:

  • Java 7 - CPG parallèle
  • Java 8 - CPG parallèle
  • Java 9 - G1 GC
  • Java 10 - G1 GC
109
x4444

La sélection du ramasse-miettes par défaut (entre autres choses) est ce qu'on appelle le processus ergonomie de la machine virtuelle Java. Ce processus dépend de la classe de votre machine.

  • Pour un ordinateur de type serveur, défini comme un ordinateur avec 2 processeurs physiques ou plus et 2 Go ou plus de mémoire physique (quelle que soit la plate-forme), le ramasse-miettes par défaut est le collecteur parallèle (également appelé collecteur de débit).
  • Pour un ordinateur de classe client, défini comme une plate-forme 32 bits sous Windows ou un ordinateur à processeur unique, le récupérateur de place par défaut est le collecteur de série.

Étant donné que pratiquement toutes les machines ont 2 processeurs ou plus, une machine est pratiquement toujours considérée comme une classe de serveur par la JVM. C'est pourquoi vous trouverez beaucoup de références considérant que le collecteur parallèle est le ramasse-miettes par défaut.

73
Tunaki

Java comporte quatre types de récupérateurs de mémoire (jusqu'à la version 10), mais après la version stable de Java 11, il s'agirait de 5 types. Ceux-ci sont:-

  1. Serial Garbage Collector- S GC
  2. Ramasse-miettes parallèle- P GC
  3. Ramasse-miettes CMS - CMS GC
  4. G1 Garbage Collector- G1 GC
  5. Le ramasse-miettes Z- ZGC

Implémentations par défaut de GC dans Java -

JVM GC

 Java 7 - P GC       
 Java 8 - P GC
 Java 9 - G1 GC
 Java 10- G1 GC
 Java 11- Z GC(I am not sure but it would be default GC of Java 11)

Plus de détails sur ZGC, veuillez visiter

http://openjdk.Java.net/projects/zgc/

https://www.opsian.com/blog/javas-new-zgc-is-very-exciting/

Remarque: Si vous voulez vérifier quel GC est actuellement utilisé par la JVM, vous pouvez choisir la commande suivante pour afficher le GC par défaut: -

$ Java -XX:+PrintCommandLineFlags -version 

Si vous souhaitez configurer le GC en fonction de vos besoins, vous pouvez le faire en suivant la commande. Ici, je vais définir G1 GC comme GC par défaut.

$ Java -XX:+UseG1GC -XX:+PrintCommandLineFlags -version 

enter image description here

For more details , please visit 

https://javapapers.com/Java/types-of-Java-garbage-collectors/

https://alvinalexander.com/Java/java-jvm-how-show-which-garbage-collector-running

37
Brajesh