2010-03-13 5 views
1

우리 도구에서 특정 작업을 수행 한 후에 남아있는 객체의 수를 감지하는 작은 코드를 작성 중입니다. 이것은 JVMTI API의 FollowReferences()을 사용합니다. 이렇게하면 모든 경로에서 도달 할 수있는 인스턴스가 계산됩니다. 약점/부드러운/팬텀 참조가 포함 된 경로는 어떻게 건너 뛸 수 있습니까? JVMTI : FollowReferences : Soft/Weak/Phantom 참조를 건너 뛰는 방법은 무엇입니까?

( IterateThroughHeap() 카운트 순간에 모든 개체를, 숫자가 완전히 신뢰할 수 없습니다 때문에.) (지금은)

답변

0

솔루션 java/lang/ref/Reference에 대한 FindClass를 사용하고 건너 뛸 수로서이 태그를하는 것입니다. FollowReference에 대한 콜백에서 클래스가 건너 뛴 것으로 표시된 경우 반복을 건너 뜁니다.

(실제 솔루션은 Sun JDK와 함께 제공되는 hprof 코드를 사용할 수 있습니다.)