JVMTI: FollowReferences: как пропустить ссылки Soft / Weak / Phantom? - PullRequest
1 голос
/ 13 марта 2010

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

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

1 Ответ

0 голосов
/ 18 марта 2010

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

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

...