Який збирач сміття за замовчуванням для Java 8?
Коли я перевіряю JMX Beans, вони виявляють, що це паралельний колектор для нового покоління та старий послідовний колектор для старого покоління.
Який збирач сміття за замовчуванням для Java 8?
Коли я перевіряю JMX Beans, вони виявляють, що це паралельний колектор для нового покоління та старий послідовний колектор для старого покоління.
Відповіді:
Вибір збирача сміття за замовчуванням (серед іншого) - це те, що називається процесом ергономіки JVM. Цей процес залежить від класу вашої машини.
Оскільки практично всі машини мають 2 і більше центральних процесорів, машина практично завжди вважається серверним класом JVM. Ось чому ви знайдете багато посилань, вважаючи паралельний колектор типовим збирачем сміття.
Java має чотири типи збирачів сміття (до версії 10), але після стабільного випуску java 11 це буде 5 типів. Це: -
S GC
P GC
CMS GC
G1 GC
ZGC
Реалізації GC за замовчуванням у 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)
Детальніше про ZGC відвідайте
http://openjdk.java.net/projects/zgc/
https://www.opsian.com/blog/javas-new-zgc-is-very-exciting/
Примітка: Якщо ви хочете перевірити, який GC наразі використовується JVM, ви можете скористатися наступною командою, щоб показати GC за замовчуванням: -
$ java -XX:+PrintCommandLineFlags -version
Якщо ви хочете встановити GC відповідно до ваших потреб, ви можете зробити це, виконавши команду. Тут я збираюся встановити G1 GC як стандартний GC.
$ 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