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. 在Python中刪除一個對象及其對它的所有引用?
- 2. 替換對shared_ptr中的對象的所有引用<T>
- 3. 一個對象給另一個對象,不僅僅是對它的引用
- 4. 查找對python中所有對象的引用
- 5. 查找所有對Lua中對象的引用
- 6. C#NHibernate - 刪除所有對刪除對象的引用
- 7. 如何從ArrayAdapter中刪除沒有該對象引用但有另一個一致對象的對象?
- 8. 擁有另一個對象的對象
- 9. 註冊一個引用System.Web的SQL對象的DLL對象CLR
- 10. 如果一個對象失敗所有對象回滾
- 11. 在所有其他對象前面繪製一個3D對象
- 12. 對象B和對象B對象的引用沒有指針
- 13. Android的一個空對象引用
- 14. Java - 引用一個變量的對象
- 15. 的ConnectionString:對象引用未設置爲一個對象實例
- 16. 通過對象的引用創建一個對象
- 17. 引用另一個對象中的Javascript對象
- 18. 傳遞一個對象的對象:引用或值?
- 19. 填充另一個對象引用的對象
- 20. 引用另一個對象內的多屬性對象
- 21. 插入NHibernate的對象,而獲得其所有的孩子引用的對象
- 22. 對象引用不設置爲一個對象的一個實例中的GridView
- 23. 有沒有辦法訪問給定對象的所有引用?
- 24. 將所有字段從一個對象移動到另一個對象
- 25. Angularfire2 - 檢索對象中的所有值而不引用父對象的鍵?
- 26. Java對對象的引用
- 27. 對象引用不設置爲一個對象的一個實例在MVC5
- 28. 對象引用不設置爲一個對象的一個實例。???
- 29. C#錯誤(對象引用不設置爲一個對象的一個實例。)
- 30. 對象引用不設置爲一個對象
我需要這個在JUnit測試中不改變目標代碼。但是,正如我所看到的,它無法完成。謝謝 – liborw 2010-10-21 14:07:53