查找正在运行的垃圾回收器类型
JSE 5 之后的人体工程学设计旨在自动为您选择适当类型的垃圾回收器(以及其他内容)。
我想知道是否有任何方法可以确认/了解垃圾回收器的类型和JVM人体工程学选择的性能目标/当前设置。
JSE 5 之后的人体工程学设计旨在自动为您选择适当类型的垃圾回收器(以及其他内容)。
我想知道是否有任何方法可以确认/了解垃圾回收器的类型和JVM人体工程学选择的性能目标/当前设置。
(对于 Java <= 8)
此命令打印正在运行的 JVM 的 GC 类型:
jmap -heap <pid> | grep GC
对于现代计算机(多个cpu,大内存),JVM会将其检测为服务器计算机,并默认使用,除非您通过JVM标志显式指定要使用的gc。Parallel GC
例如
jmap -heap 26806 | grep GC
输出:
具有 8 个线程的并行 GC
(感谢@JakeRobb的评论。
从Java 9开始,有2个与此问题相关的更改:
jhsdb
G1
命令格式:
jhsdb jmap --heap --pid <pid> | grep GC
例如
jhsdb jmap --heap --pid 17573 | grep GC
输出:
垃圾优先 (G1) GC,带 8 个线程