System.gc()是运行GC的建议方法,而System.runFinalization()也是如此。
但是使用jmap进行堆转储,它将强制执行GC /完整GC。 所以我的问题是:是否有像jmap堆转储一样的工具/方法/挂钩可以用来强制执行runFinalization?
我想描述一下我的情况: 我的堆大小在一段时间后不会减少,当我进行head dump时,我可以看到:
1:6793014 271720560 java.lang.ref.Finalizer
2:7251647 232052704 java.util.HashMap $ Node
3:6791349 162992376 XX.WP
所以我认为这可能是由finalize方法引起的,我想通过强制执行runFinalization对其进行快速验证。