我正在使用JVisualVM来查看应用程序,我在内存分析器和快照中看到了SomeDomainClass的许多对象。此后不久生成的Java堆转储(.hprof文件)不包含SomeDomainClass的实例。因为内存分析器“显示分配的对象总数”,并且hprof文件包含堆中活动的对象,这是否表明应用程序正在创建SomeDomainClass的许多短期实例?
答案 0 :(得分:1)
实际上,当您开始生成堆时,visualVM
将在开始收集对象之前调用GC
以确定活动对象。然后收集它们。
因此,如果你的Heap没有显示SomeDomainClass
类的任何实例,那么SomeDomainClass
时刻是短暂的,在其他世界中,这些实例在生成堆时没有任何引用