我开始使用visual vm,以找出应用程序使用这么多内存的原因。
只是为了确定我理解的事情:
通过heapdump获取完整的内存映射?
使用内存分析器(因为只考虑了10个对象?),只有一个概述?
我理解得对吗?
谢谢
答案 0 :(得分:2)
VisualVM具有内存分析模式,可以持续跟踪应用程序中内存分配的情况。在这种模式下,它无法承受跟踪每个对象的负担,因此妥协是跟踪每10个分配。另一方面,Monitor选项卡上提供了 Heap Dump 功能,您可以在其中获得所有对象的完整详细信息。此转储等同于命令行heapdump
实用程序。
答案 1 :(得分:2)
1)heapdump可以让你找出你的应用实际拥有哪些对象并使用堆
2)内存分析器显示您的应用分配对象(+他们的类)的速率。这将主要由临时分配的对象
组成(1)主要是查找内存泄漏/了解堆消耗
(2)最适合将性能分析为直接和间接的对象分配成本性能(碎片,更多gc)。同样在memleaks的情况下,这可以指示导致memleak的对象来自哪里。