Memory Analyzer和任务管理器之间分配的内存差异

时间:2017-02-10 12:53:31

标签: eclipse eclipse-plugin heap-memory eclipse-memory-analyzer memoryanalyzer

我想分析一个非常庞大的Java VM进程的内存使用情况。

我在启动Eclipse内存分析工具时意识到的一件事是所谓的分配内存之间的巨大差异:Windows任务管理器/ CMD任务列表显示大约5,5GB,而内存分析器只显示1,1GB。导致这种差异的原因是什么?

1 个答案:

答案 0 :(得分:1)

Eclipse Memory Analyzer (MAT)看到和报告的内容是Java 的大小,即由Object个实例组成的对象图。操作系统看到和报告的内容是JVM从操作系统请求存储Java堆(及其内部数据结构)的 RAM 区域的大小。此内存通常未完全填充使用 live Java对象;一些对象可能已经(并且看不到MAT)但尚未收集,垃圾收集器本身也需要一些空间来移动对象。

我希望这能解释基础知识(JVM和OS内存管理的详细信息还有很多)。