0
Q
動態處理內存泄漏
A
回答
1
我可能會使用與Leakcanary相同的方法。你可以閱讀關於它here。
簡而言之,它們在對象之間創建弱引用。在GC之後,他們正在檢查參考是否被清除。如果不是,他們傾倒堆,並分析轉儲。 Analyzer計算GC根的最短強參考路徑以確定是否存在泄漏,然後構建導致泄漏的參考鏈。在那一刻如果有泄漏,你可以保存所有你需要的數據。
問題是,如果你想保存所有數據,你需要在主線程上完成所有這些。否則,應用程序可能會關閉,數據可能會丟失等。
相關問題
- 1. 事件處理結合內存泄漏
- 2. 如何處理內存泄漏?
- 3. 處理程序類和內存泄漏
- 4. UnmanagedMemoryStream處理和內存泄漏
- 5. 處理中的內存泄漏
- 6. 處理程序內存泄漏
- 7. 在android中處理內存泄漏
- 8. 內存泄漏而位圖處理
- 9. 如何處理jqPlot內存泄漏?
- 10. 靜態NSString內存泄漏
- 11. 動態控件內存泄漏
- 12. 動態字符串內存泄漏
- 13. IE動態生成javascript泄漏內存
- 14. 動態分配泄漏內存?
- 15. Javascript內存管理泄漏
- 16. 內存泄漏問題,內存管理
- 17. FirebaseAuth內存泄漏活動
- 18. matplotlib動畫內存泄漏
- 19. 活動內存泄漏dialog.show()
- 20. F#互動內存泄漏
- 21. 內存泄漏
- 22. 內存泄漏:
- 23. 內存泄漏
- 24. 內存泄漏
- 25. 內存泄漏
- 26. 內存泄漏
- 27. 內存泄漏
- 28. 內存泄漏
- 29. 內存泄漏
- 30. 內存泄漏
它確實是一種很好的技術。但是你能否清楚我,這些弱引用是如何幫助確定泄漏的? – Ranjit
這不會幫助您發現泄漏,它幫助您不要創建新的泄漏。如果您對某個對象的引用較弱,則該對象將被GC刪除。所以這是跟蹤對象的唯一安全方式,並且不會干擾這些對象的垃圾回收。 要查看某個對象是否泄露,您需要跟蹤其生命週期。例如,如果在Activity中調用了onDestroy(),那麼沒有理由將該活動保存在內存中。因此,如果在某個對象中對該活動有強烈的引用,那麼該對象正在泄漏內存。 –
感謝您的解釋。 :) – Ranjit