Java VisualVM是否提供堆转储的正确堆大小(.hprof文件)

时间:2014-04-23 07:02:36

标签: java visualvm heap-dump eclipse-memory-analyzer

我正在分析OutOfMemory问题。当我在MAT中打开它时,我获得了800 MB(.hprof文件)的转储,它显示堆大小为53.2 MB,如下所示

enter image description here

我在Java VisualVM中打开了相同的转储,我看到堆大小约为769 MB

  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

我读了一个article,显示MAT跳过无法访问的对象,因此没有报告确切的堆大小。

VisulaVM的总字节数在此处显示:堆大小或(堆+非堆大小)或其他任何内容?

2 个答案:

答案 0 :(得分:0)

Total Bytes是堆转储中所有对象大小的总和。

答案 1 :(得分:0)

Eclipse MAT删除了JVM中GC无法访问的对象和其他垃圾。阅读更多:

http://wiki.eclipse.org/MemoryAnalyzer/FAQ#Problems_Interpreting_Results