Какой сборщик мусора по умолчанию для 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
Начиная с Java 9 до Java 15 G1GC используется по умолчанию даже в Java 15, который добавляет два сборщика мусора нового поколения: один, который Oracle разрабатывает ZGC, и реализация Red Hat, которая является Shenandoah, оба готовы к производству в Java 15 сентября 2020 года.
UnlockExperimentalVMOptions
, но на jdk 15 больше нет. 3. ParallelGC - это сборщик мусора по умолчанию для JDK 8, о чем собственно и идет речь.
Since Java 8 until Java 15 the G1GC is the default even on Java 15
, что формулировка неправильная. JDK 8 по умолчанию - Parallel, вы сами сказали, что комментируете ответ, который все еще неверен. Shenandoah можно использовать в JDK 8 и JDK 11, он был перенесен обратно.