Qual è il garbage collector predefinito per Java 8?
Quando controllo i fagioli JMX, rivelano che è il raccoglitore parallelo per la nuova generazione e il vecchio raccoglitore seriale per la vecchia generazione.
Qual è il garbage collector predefinito per Java 8?
Quando controllo i fagioli JMX, rivelano che è il raccoglitore parallelo per la nuova generazione e il vecchio raccoglitore seriale per la vecchia generazione.
Risposte:
La selezione del garbage collector predefinito (tra le altre cose) è quello che viene chiamato il processo di ergonomia della JVM. Questo processo dipende dalla classe della tua macchina.
Poiché praticamente tutte le macchine hanno 2 o più CPU, una macchina è praticamente sempre considerata di classe server dalla JVM. Ecco perché troverai molti riferimenti che considerano il collector parallelo come garbage collector predefinito.
Java ha quattro tipi di garbage collector (fino alla versione 10), ma dopo il rilascio stabile di java 11, sarebbero 5 tipi. Questi sono:-
S GC
P GC
CMS GC
G1 GC
ZGC
Implementazioni predefinite di GC in 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)
Maggiori dettagli per ZGC, visitare
http://openjdk.java.net/projects/zgc/
https://www.opsian.com/blog/javas-new-zgc-is-very-exciting/
Nota: se si desidera verificare quale GC è attualmente utilizzato da JVM, è possibile utilizzare il seguente comando per mostrare il GC predefinito: -
$ java -XX:+PrintCommandLineFlags -version
Se desideri impostare il GC in base alle tue necessità, puoi farlo seguendo il comando. Qui imposterò G1 GC come GC predefinito.
$ java -XX:+UseG1GC -XX:+PrintCommandLineFlags -version
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