为什么每次对象似乎标志着新的,而不只是对象是在第二个快照,但不是在我的基线快照? 环顾四周网上,我看到了一些建议,我需要改用HPROF JMAP,使我的内存转储,但现在看来,HPROF在完全相同的格式生成转储。
这是JDK 1.6.0_14; 我试图在Windows和UNIX。
为什么每次对象似乎标志着新的,而不只是对象是在第二个快照,但不是在我的基线快照? 环顾四周网上,我看到了一些建议,我需要改用HPROF JMAP,使我的内存转储,但现在看来,HPROF在完全相同的格式生成转储。
这是JDK 1.6.0_14; 我试图在Windows和UNIX。
jhat -baseline
确实不会将产生转储工作jmap
。 我不能肯定,但我相信这是因为HPROF从一开始就重视JVM和保持它自己的轨道对象,允许其在多个垃圾场产生一致的ID。 不要可以引用我这句话。 无论哪种方式,只要您关注的重要一点是,JMAP转储不起作用。
然而,一切都没有失去。 去在Eclipse的内存分析器 。 (如果你不使用Eclipse,不要害怕,你可以把它作为一个独立的可执行文件),它比速度与jHat,使用较少的内存比和与jHat它可以做你想做的:
所有这一切都正常工作与一个JMAP转储。
看来你需要使用HPROF。 但你一定要使用相同的虚拟机实例?
本 - 基线选项允许,如果他们被HPROF和来自同一个VM实例制作要比较的两个转储。 如果同一个对象同时出现在转储它将从报告的新对象列表中排除。 一个转储被指定为一个基线和分析可以集中于在第二转储创建以来获得基线的对象。
如果一切都被认为是新的,我会确保这是虚拟机的同一个实例。
这里