Android Native 內存泄漏系統化解決方案

導讀:C++內存泄漏問題的分析、定位一直是Android平臺上困擾開發人員的難題。因爲地圖渲染、導航等核心功能對性能要求很高,高德地圖APP中存在大量的C++代碼。解決這個問題對於產品質量尤爲重要和關鍵,高德技術團隊在實踐中形成了一套自己的解決方案。

分析和定位內存泄漏問題的核心在於分配函數的統計和棧回溯。如果只知道內存分配點不知道調用棧會使問題變得格外複雜,增加解決成本,因此兩者缺一不可。

Android中Bionic的malloc_debug模塊對內存分配函數的監控及統計是比較完善的,但是棧回溯在Android體系下缺乏高效的方式。隨着Android的發展,Google也提供了棧回溯的一些分析方法,但是這些方案存在下面幾個問題:

1.棧回溯的環節都使用的libunwind,這種獲取方式消耗較大,在Native代碼較多的情況下,頻繁調

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章