首先,开启gc日志。-XX:+PrintGCDetails
疏散阶段
疏散阶段,主要是将内存中的数据从一些分区复制到其他分区
0.522: [GC pause (young), 0.15877971 secs] # 这次疏散只涉及年轻代,总耗时 0.15877971.如果是混合gc则可能是 [GC pause (mixed), 0.32714353 secs]
[Parallel Time: 157.1 ms] # 并行疏散,总耗时 157.1 ms
[GC Worker Start (ms): 522.1 522.2 522.2 522.2 # 每个疏散线程的开始时间
Avg: 522.2, Min: 522.1, Max: 522.2, Diff: 0.1] # 最大时间,最小时间
[Ext Root Scanning (ms): 1.6 1.5 1.6 1.9 # 每个线程扫描根分区的时间
Avg: 1.7, Min: 1.5, Max: 1.9, Diff: 0.4]
[Update RS (ms): 38.7 38.8 50.6 37.3 #更新RS的耗时,线程会把对当前分区引用的变更记录在buffer里,这里就是处理这些buffer
Avg: 41.3, Min: 37.3, Max: 50.6, Diff: 13.3]
[