1

ツールで特定のアクションを実行した後に残されたオブジェクトの数を検出するための小さなコードを書いています。これはFollowReferences()JVMTIAPIから使用します。これにより、すべてのパスが到達可能なインスタンスがカウントされます。ウィーク/ソフト/ファントム参照を含むパスをスキップするにはどうすればよいですか?

IterateThroughHeap()現時点ですべてのオブジェクトをカウントするため、数は完全には信頼できません。)

4

1 に答える 1

0

解決策(今のところ)は、を使用FindClassしてjava/lang/ref/Referenceから、これをスキップするようにタグ付けすることです。のコールバックでFollowReference、クラスがスキップされるようにマークされている場合は、反復をスキップします。

(実際の解決策は、Sun JDKに付属のhprofコードを使用することです。)

于 2010-03-18T18:01:50.320 に答える