当JVM与-XX:+ UseParNewGC一起运行时,我们偶尔会遇到访问冲突。 当我们查看转储文件时,我们会看到
Heap
par new generation total 14784K, used 13689K [0x02bd0000, 0x03bd0000, 0x06950000)
eden space 13184K, 100% used [0x02bd0000, 0x038b0000, 0x038b0000)
from space 1600K, 31% used [0x03a40000, 0x03abe678, 0x03bd0000)
to space 1600K, 35% used [0x038b0000, 0x0393f800, 0x03a40000)
concurrent mark-sweep generation total 125324K, used 93541K [0x06950000, 0x0e3b3000, 0x34bd0000)
concurrent-mark-sweep perm gen total 53900K, used 32283K [0x34bd0000, 0x38073000, 0x38bd0000)
我假设“par new”代表ParNewGC。
我想谷歌使用标准并行GC的类似日志,是否有人知道我会在“堆”而不是“新一代”中看到什么?
答案 0 :(得分:2)
你得到什么样的转储?您只需使用-XX:+ HeapDumpOnCtrlBreak执行HeapDump并向您的进程发送控制中断,即可从JVM中请求此类信息。然后,您可以分析堆转储文件并获得答案。当然,如果您使用的是Java 6,则没有HeapDumpOnCtrlBreak选项,您需要使用jmap工具生成转储。