2
A
回答
3
這是經由JVMTI possivble並且通常由堆分析器完成的。但是,它不能從Java內部完成。
1
一種方法是保留一個弱引用的列表,以列出所有請求訂閱的對象。只要對象訂閱了另一個對象,就會在列表中添加對另一個對象的弱引用。每當對象取消訂閱,請刪除弱引用。通過檢查列表是否爲空來驗證所有訂閱已被刪除。
如有必要,對於支持多種類型訂閱的對象,這可以推廣。
如果訂閱沒有附加到列表中,則可能會發生誤報。
1
這是不可能的從JVM中,但你可以通過使用jmap
從JDK,那麼你可以使用jhat
解析轉儲文件,然後單擊通至活着被帶到轉儲時引用創建一個堆轉儲。
結帳我這篇文章弗蘭克kieviet,其中JMAP和與jHat用於標識在Tomcat中PermGen的泄漏: http://blogs.oracle.com/fkieviet/entry/how_to_fix_the_dreaded
和JMAP和與jHat網站:
http://download.oracle.com/javase/6/docs/technotes/tools/share/jhat.html http://download.oracle.com/javase/6/docs/technotes/tools/share/jmap.html
相關問題
- 1. 如何存儲對一個類的所有對象的引用?
- 2. 取消對對象的所有引用
- 3. Python:有沒有辦法讓所有對象的引用都引用另一個對象?
- 4. 在Python中刪除一個對象及其對它的所有引用?
- 5. 從對象數組創建一個對象引用父對象
- 6. 所有wcf客戶的一個對象
- 7. 返回一個對象VS引用返回一個對象
- 8. 填充JavaScript對象與另一個對象的所有元素
- 9. 替換對shared_ptr中的對象的所有引用<T>
- 10. 一個對象給另一個對象,不僅僅是對它的引用
- 11. 查找所有對Lua中對象的引用
- 12. 查找對python中所有對象的引用
- 13. C#NHibernate - 刪除所有對刪除對象的引用
- 14. 如何從ArrayAdapter中刪除沒有該對象引用但有另一個一致對象的對象?
- 15. 擁有另一個對象的對象
- 16. 註冊一個引用System.Web的SQL對象的DLL對象CLR
- 17. 有一個對屬性的引用,有沒有辦法獲取對包含對象的引用?
- 18. 如果一個對象失敗所有對象回滾
- 19. 在所有其他對象前面繪製一個3D對象
- 20. NSMutableArray:將所有對象推向一個索引?
- 21. 對象B和對象B對象的引用沒有指針
- 22. 垃圾回收器:刪除對一個引用另一個對象的對象的引用
- 23. Android的一個空對象引用
- 24. $這是一個對象的引用?
- 25. 返回一個對象的const引用
- 26. Java - 引用一個變量的對象
- 27. 傳遞一個對象的對象:引用或值?
- 28. 的ConnectionString:對象引用未設置爲一個對象實例
- 29. php - 一個對象可以引用父對象的方法嗎?
- 30. 填充另一個對象引用的對象
我需要這個在JUnit測試中不改變目標代碼。但是,正如我所看到的,它無法完成。謝謝 – liborw 2010-10-21 14:07:53