Дает ли Java VisualVM правильный размер кучи дампа кучи (файл .hprof)

Я анализирую проблему OutOfMemory. Я получил дамп размером 800 МБ (файл .hprof), когда я открываю его в MAT, он показывает размер кучи 53,2 МБ, как показано ниже.

введите здесь описание изображения

Тот же дамп, который я открыл в Java VisualVM, и я вижу размер кучи около 769 МБ.

  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 пропускает недоступные объекты, поэтому не сообщает точный размер кучи.

Что здесь показывает Total Bytes of VisulaVM: размер кучи или (размер кучи + не кучи) или что-то еще?


person Vipin    schedule 23.04.2014    source источник


Ответы (2)


Total Bytes — это сумма размеров всех объектов в дампе кучи.

person Tomas Hurka    schedule 02.05.2014

Eclipse MAT удаляет недостижимый объект и другой мусор, оставленный сборщиком мусора в JVM. Подробнее:

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

person vreddy    schedule 19.09.2014