Heapdump vs视觉vm中的记忆记忆

时间:2012-12-25 10:47:39

标签: java memory jvm

我开始使用visual vm,以找出应用程序使用这么多内存的原因。

只是为了确定我理解的事情:

通过heapdump获取完整的内存映射?

使用内存分析器(因为只考虑了10个对象?),只有一个概述?

我理解得对吗?

谢谢

2 个答案:

答案 0 :(得分:2)

VisualVM具有内存分析模式,可以持续跟踪应用程序中内存分配的情况。在这种模式下,它无法承受跟踪每个对象的负担,因此妥协是跟踪每10个分配。另一方面,Monitor选项卡上提供了 Heap Dump 功能,您可以在其中获得所有对象的完整详细信息。此转储等同于命令行heapdump实用程序。

答案 1 :(得分:2)

1)heapdump可以让你找出你的应用实际拥有哪些对象并使用堆

2)内存分析器显示您的应用分配对象(+他们的类)的速率。这将主要由临时分配的对象

组成

(1)主要是查找内存泄漏/了解堆消耗

(2)最适合将性能分析为直接和间接的对象分配成本性能(碎片,更多gc)。同样在memleaks的情况下,这可以指示导致memleak的对象来自哪里。