JVMTI:FollowReferences:如何跳过Soft / Weak / Phantom引用?

时间:2010-03-13 06:24:20

标签: java memory-leaks memory-management jvmti

我正在编写一个小代码来检测我们工具中某些操作后留下的对象数量。这使用来自JVMTI API的FollowReferences()。这会计算所有路径都可以访问的实例。如何跳过包含弱/软/幻像参考的路径?

IterateThroughHeap()此刻计算所有对象,因此数字不完全可靠。)

1 个答案:

答案 0 :(得分:0)

解决方案(暂时)是对FindClass使用java/lang/ref/Reference,然后将其标记为要跳过。在FollowReference的回调中,当标记为要跳过类时跳过迭代。

(真正的解决方案可能是使用Sun JDK附带的hprof代码。)