内存泄漏问题总结
来源:互联网 发布:如何查看淘宝卖家信息 编辑:程序博客网 时间:2024/06/11 17:11
长时间跑机,一般会引起:程序运行卡顿(性能本是足够满足业务的),卡死,莫名重启,挂死,堆栈是挂死在malloc里面,MMZ/SMMU分配失败,或者kernel panic,这些时候就开始怀疑是不是内存泄漏了。
内存泄漏可能的原因:内存分配释放泄漏,资源泄漏,文件资源泄漏,线程泄漏,内存碎片过多。
定位的方法:
1. 分析问题出现的想象,看看是内核态还是用户态导致的内存泄漏,可以通过proc信息确认,不同的平台有不同的proc嘛,海思平台的meminfo,media-mem,slabinfo等信息。
2. 继续分析,什么类型的内存泄漏,通过堆栈,内存相关proc分析,是c/c++,还是内核,or内存碎片,还是mmz/smmu
3. 找规律,通过减法,也就是注释啦,修改程序,缩小最小的复现场景
4.走读代码,对可疑的地方添加打印调试,挂gdb定位
5. 源码比较复杂,涉及第三方库,可以使用工具kmemleak、valgrind协助定位
这类问题比较难定位,没有什么特别好的方法,不过一般走到第4步就能解决了,需要长经验在写代码的时候就要规划规避这类问题,多线程多通道下对资源的申请释放,还是很细节的东西,内存申请按照申请的顺序依次释放,减少内存碎片的产生哦!。很坑
阅读全文
0 0
- 内存泄漏问题总结
- 内存泄漏问题总结
- IE内存泄漏问题总结
- Memory Leak(内存泄漏)问题总结
- android开发中内存泄漏问题总结
- Memory Leak(内存泄漏)问题总结
- 安卓的内存泄漏问题总结
- 内存泄漏检测总结
- java内存泄漏总结
- Java 内存泄漏总结
- javascript内存泄漏总结
- Android 内存泄漏总结
- Android 内存泄漏总结
- Android 内存泄漏总结
- Android 内存泄漏总结
- Android 内存泄漏总结
- Android 内存泄漏总结
- Android 内存泄漏总结
- php解决跨域问题
- 掌握饮食和运动的诀窍,让自己更高效(笔记)
- 兄弟连LinuxStudyNote(2)-给Linux初学者的建议、Linux注意事项(一)
- Oracle 11g创建、查看、删除dblink
- Elasticsearch-IK分词器详解以及源码修改实现mysql热更新
- 内存泄漏问题总结
- MyBatis中的resultType和resultMap
- 二分查找
- 阻抗(输入阻抗、输出阻抗)与阻抗匹配(失配)
- uml 时序图
- Win10+VS2012配置OpenGL
- Lintcode两个集合的交集
- hadoop+eclipse运行设置报错
- CSS 元水平直居中的 6种方法