GCT(Total garbage collection time)的定义

Definition of GCT (Total garbage collection time)

"Total garbage collection time"可以通过观察命令打印的GCT列来判断:

jstat -gc <pid>

如此处文档所述:https://docs.oracle.com/en/java/javase/12/tools/jstat.html

这似乎是自 Java 进程启动以来执行 GC 所花费的时间,以秒为单位。

每核吗?那么,如果一个四核 CPU 被单个 JVM 实例完全利用 100 秒,并且有 10% 的时间在进行垃圾收集,那么 GCT 会报告 10 还是 40?如果我启用了超线程(即 8 OS 核),那么我应该如何推断 GCT 数字?

我正在使用 OpenJDK12 HotSpot JVM。

GCT 指标是特定于收集器的。每个 GC 算法都可以为 GCT.

定义自己的含义

通常是在 stop-the-world GC 暂停中花费的总 wall clock time。特别是,对于 OpenJDK 12 中的默认收集器 G1,GCT 是 Full GC 暂停 + 并发 GC 周期的停止世界阶段的总和。

但是,对于 Shenandoah GC GCT 还包括并发 GC 时间。在任何一种情况下,GCT 都是使用绝对(挂钟)计时器测量的,与线程数或 CPU 核心数无关。