关于JVM垃圾收集器相关的一点事情

关于JVM垃圾收集器相关的一点事情

最近在翻JAVA官方的一些文档。关于JAVA垃圾收集器GC的内容,是重点之一。

GC名称中文名称启用参数特性备注
Serial Collector串行收集器-XX:+UseSerialGC单线程垃圾回收
Parallel Collector并行收集器-XX:+UseParallelGC多线程垃圾回收
Garbage-First(G1) Garbage CollectorG1收集器-XX:+UseG1GC延迟可控垃圾回收
The Z Garbage CollectorZ收集器-XX:+UseZGC低延迟垃圾回收用于延迟敏感型

至于大家常提起的CMS,过渡阶段的产物,JDK9之后已经灰飞烟灭,就不提了。

另外额外说一句,别没事自己指定GC,除非你真的明白你在作甚。一般情况下,让JVM自己去选择GC方式,另外,即便是你自己指定了GC,在特定条件下也会退化,甚至最终退化为SGC。

引用下文档原文:“Unless your application has rather strict pause-time requirements, first run your application and allow the VM to select a collector.”

另外附一下JAVA官方文档地址:https://docs.oracle.com/en/java/javase/18/

部分可下载的语言以及JVM规格说明书等PDF文档地址:https://docs.oracle.com/javase/specs/index.html