我正在分析一个OutOfMemory问题。当我在MAT中打开它时,我得到了800MB(. hprof文件)的转储,它显示堆大小53.2MB如下
我在JavaVisualVM中打开的相同转储,我看到堆大小约为769MB
Date taken: Tue Mar 18 05:25:59 IST 2014
File: C:\Users\ABC\Desktop\Memory\MemoryDump.hprof
File size: 789.1 MB
Total bytes: 768,683,549
Total classes: 9,288
Total instances: 7,081,010
Classloaders: 2,924
GC roots: 2,496
Number of objects pending for finalization: 0
我读过一篇文章,其中显示MAT跳过了无法访问的对象,因此不会报告确切的堆大小。
VisulaVM的总字节数在这里显示了什么:堆大小或(堆非堆大小)或其他任何东西?
Total Bytes
是堆转储中所有对象的大小之和。
Eclipse MAT删除了无法访问的对象和JVM中GC留下的其他垃圾。阅读更多:
http://wiki.eclipse.org/MemoryAnalyzer/FAQ#Problems_Interpreting_Results