2010-03-13 4 views
1

Я пишу небольшой код, чтобы обнаружить количество объектов, оставшихся после определенных действий в нашем инструменте. Это использует FollowReferences() от JVMTI API. Это подсчет экземпляров, доступных по всем путям. Как я могу пропустить пути, которые включали слабую/мягкую/фантомную ссылку?JVMTI: FollowReferences: как пропустить ссылки Soft/Weak/Phantom?

(IterateThroughHeap() подсчитывает все объекты на данный момент, так что число не является полностью надежным.)

ответ

0

Solution (на данный момент) является использование FindClass для java/lang/ref/Reference, а затем пометить это как следует пропустить. В обратном вызове для FollowReference пропустите итерацию, когда класс помечен как пропущенный.

(Реальное решение может заключаться в использовании кода hprof, поставляемого с Sun JDK.)