导读:C++内存泄漏问题的分析、定位一直是Android平台上困扰开发人员的难题。因为地图渲染、导航等核心功能对性能要求很高,高德地图APP中存在大量的C++代码。解决这个问题对于产品质量尤为重要和关键,高德技术团队在实践中形成了一套自己的解决方案。
分析和定位内存泄漏问题的核心在于分配函数的统计和栈回溯。如果只知道内存分配点不知道调用栈会使问题变得格外复杂,增加解决成本,因此两者缺一不可。
Android中Bionic的malloc_debug模块对内存分配函数的监控及统计是比较完善的,但是栈回溯在Android体系下缺乏高效的方式。随着Android的发展,Google也提供了栈回溯的一些分析方法,但是这些方案存在下面几个问题:
1.栈回溯的环节都使用的libunwind,这种获取方式消耗较大,在Native代码较多的情况下,频繁调
继续阅读与本文标签相同的文章
下一篇 :
四种不同对象的生存方式(栈、堆、全局、局部静态)
-
突破Java面试(42) - Redis & ZooKeeper两种分布式锁实现的优劣
2026-05-24栏目: 教程
-
又是一年的校招季,过来人给你讲几句肺腑之言
2026-05-24栏目: 教程
-
Linux基础命令---mysqldump数据库备份
2026-05-24栏目: 教程
-
最常用的Windows、Linux网络命令总结
2026-05-24栏目: 教程
-
按月、按天计算失效日期的代码实现
2026-05-24栏目: 教程
