我正在编写一段小代码来检测在我们的工具中执行某些操作后留下的对象数量。这使用 JVMTI API 中的 FollowReferences()
。这对所有路径可到达的实例进行计数。如何跳过包含弱/软/幻像引用的路径?
(IterateThroughHeap()
统计当前所有对象,因此该数字并不完全可靠。)
最佳答案
解决方案(目前)是对 java/lang/ref/Reference
使用 FindClass
,然后将其标记为要跳过。在 FollowReference
的回调中,当类被标记为跳过时跳过迭代。
(真正的解决方案可能是使用 Sun JDK 附带的 hprof 代码。)
关于java - JVMTI:FollowReferences:如何跳过软/弱/幻像引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2437496/