Java VisualVM能给出堆转储文件(.hprof文件)的正确堆大小吗?

4

我正在分析一个内存溢出问题。我得到了一个800 MB的转储文件(.hprof文件),当我在MAT中打开它时,如下图所示,堆大小为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

我读到了一篇文章,显示MAT跳过了不可达对象,因此没有报告准确的堆大小。

VisualVM中的Total Bytes显示的是什么:堆大小、(堆+非堆大小)还是其他内容?

2个回答

0

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接