我正在编写一个小代码来检测我们工具中某些操作后留下的对象数量。这使用来自JVMTI API的FollowReferences()
。这会计算所有路径都可以访问的实例。如何跳过包含弱/软/幻像参考的路径?
(IterateThroughHeap()
此刻计算所有对象,因此数字不完全可靠。)
答案 0 :(得分:0)
解决方案(暂时)是对FindClass
使用java/lang/ref/Reference
,然后将其标记为要跳过。在FollowReference
的回调中,当标记为要跳过类时跳过迭代。
(真正的解决方案可能是使用Sun JDK附带的hprof代码。)