【问题标题】:Heap size discrepancies in VisualVM vs Eclipse MAT [duplicate]VisualVM 与 Eclipse MAT 中的堆大小差异 [重复]
【发布时间】:2017-02-20 16:48:48
【问题描述】:

我正在尝试分析我的 Java 应用程序的内存使用情况。在 VisualVM 中,我看到堆大小为 ~733M:

但是当我将堆转储导出到 Eclipse MAT 时,它显示为 36.6MB:

这是为什么呢?

【问题讨论】:

  • 虽然没有改变问题,但733M无关紧要,使用的257M才是重要的数字。

标签: java visualvm heap-dump eclipse-mat


【解决方案1】:

重复:Why is my Java heap dump size much smaller than used memory?

TLDR;堆转储触发垃圾收集和转储显示“已用堆”

【讨论】:

  • 为了确认我的理解,在VisualVM中查看“Used heap”是在垃圾回收和做堆转储之前,是垃圾回收之后的大小?
  • 我不确定VisualVM是做什么的,但我的理解和你的一样。我可以推荐一个我最近访问过的演讲“HotSpot Internals: Signals, Safepoints and NullPointers – Volker Simonis”2017.geekout.ee/videos/#day2-03 这是非常核心的,而不是关于 VisualVM,但我认为会提供一些见解。
  • 抱歉,我的评论可能不清楚。我的意思是,确认我对你的回答的理解。您是说我看到的区别是因为执行堆转储 触发垃圾收集 而不是在应用程序运行时查看堆 垃圾回收之前?
  • 是的,这就是我要说的。
猜你喜欢
  • 2021-03-26
  • 2015-04-25
  • 2015-09-29
  • 2019-11-12
  • 2021-04-07
  • 2011-05-07
  • 2018-03-09
  • 2021-10-07
  • 1970-01-01
相关资源
最近更新 更多