我正在尝试使用JVisualVM来查看我的应用程序活动对象及其相应的内存数量(可能在包级别)
使用jstad连接
连接时,如何实现相同目的由于
答案 0 :(得分:3)
我很确定你不能用VisualVM来对抗正在运行的进程。您需要做的是使用jmap进行堆转储(例如jmap -dump:format = b,file = heapdump.bin),然后使用mat之类的工具来分析该转储。 / p>
请注意堆转储将在相当长的时间内阻止您的进程,尤其是在您有大堆的情况下。
在更一般的层面上获取信息的另一个方法是运行jmap -histo:对你的进程实时生活,只查看每种类型的对象数量及其足迹。
答案 1 :(得分:3)
VisualVM绝对支持通过堆转储查看和检查实时对象,以及实时采样分配。
对于堆转储,右键单击该过程,选择Heap Dump。
这将打开堆转储视图。在“摘要”页面上,您可以按保留的大小计算n个最大的对象,然后单击查看各种视图。
它提供了与上面建议的使用jmap和mat基本相同的功能,但具有更好的工作流程和可用性。