【问题标题】:Allocated memory discrepancy between Memory Analyzer and Task Manager内存分析器和任务管理器之间分配的内存差异
【发布时间】:2017-02-10 12:53:31
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

    我希望这能解释基础(关于 JVM 和 OS 内存管理的更多细节)。

    【讨论】:

      猜你喜欢
      • 2012-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-09
      相关资源
      最近更新 更多