java - 将 JVisualVM 快照中的 "objects allocated"与 Java 堆转储中的实例数进行比较

标签 java jvisualvm hprof

我正在使用 JVisualVM 查看应用程序,我在内存分析器和快照中看到了 SomeDomainClass 的许多对象。此后不久生成的 Java 堆转储(.hprof 文件)不包含 SomeDomainClass 的实例。因为内存分析器“显示分配的对象总数”,并且 hprof 文件包含堆中 Activity 的对象,这是否表明应用程序正在创建 SomeDomainClass 的许多短期实例?

最佳答案

实际上,当您开始生成堆时,visualVM 将在开始收集对象之前调用 GC 以确定 Activity 对象。然后收集它们。

因此,如果您的堆没有显示 SomeDomainClass 类的任何实例,那么是的,SomeDomainClass 实例是短暂的,在其他世界中,这些实例没有生成堆时的任何引用。

关于java - 将 JVisualVM 快照中的 "objects allocated"与 Java 堆转储中的实例数进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21754988/

相关文章:

java - 有什么方法可以分析截断的 Java 堆转储(hprof 文件)?

java - 如何在 Visualvm 中查看 Web 应用程序数据

java - 从 jconsole/jvisualvm 确定垃圾收集器类型?

java - Hadoop HPROF 分析未写入 CPU 样本

c# - ArrayList:帮助从 Java 转换为 C#

redis - Jedis getResource() 正在花费大量时间

java - 获取 Java 进程分配的总内存(没有分析器)?

java - 理解纯方法@Contract

java - Kryonet 数据包未发送

Java/Mockito : Set up 'when' for list arg containing element