我正在使用 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/