jvisualvm - 如何查看具有内存消耗的活动对象

时间:2012-05-25 10:37:30

标签: java profiling jvisualvm

我正在尝试使用JVisualVM来查看我的应用程序活动对象及其相应的内存数量(可能在包级别)

使用jstad连接

连接时,如何实现相同目的

由于

2 个答案:

答案 0 :(得分:3)

我很确定你不能用VisualVM来对抗正在运行的进程。您需要做的是使用jmap进行堆转储(例如jmap -dump:format = b,file = heapdump.bin),然后使用mat之类的工具来分析该转储。 / p>

请注意堆转储将在相当长的时间内阻止您的进程,尤其是在您有大堆的情况下。

在更一般的层面上获取信息的另一个方法是运行jmap -histo:对你的进程实时生活,只查看每种类型的对象数量及其足迹。

答案 1 :(得分:3)

VisualVM绝对支持通过堆转储查看和检查实时对象,以及实时采样分配。

对于堆转储,右键单击该过程,选择Heap Dump。

这将打开堆转储视图。在“摘要”页面上,您可以按保留的大小计算n个最大的对象,然后单击查看各种视图。

它提供了与上面建议的使用jmap和mat基本相同的功能,但具有更好的工作流程和可用性。