首页 >

怎样解决Linux内存泄漏? – 网络|

ce怎么修改dnf技能,360漏油器怎么恢复出厂设置,怎么删除目录封面页眉页脚ce怎么修改dnf技能,360漏油器怎么恢复出厂设置,怎么删除目录封面页眉页脚怎样解决Linux内存泄漏? - 网络|怎样解决Linux内存泄漏

内存泄露的查询有很多方式,可以借助自动化工具(github或相关网络资源上找),往往出现内存泄露时可以有以下几种方式来排查:

review代码。如果代码量不是很大,并且有交叉review的习惯。可以在初期解决掉。

使用内存泄露检查工具,网上有很多工具,偶列举几个可以尝试的:

vagrind这个工具会帮你检查出怀疑点,它分好几个等级来怀疑内存泄露,注意确定那个等级。

还有vagrind跑进程需要添加符号表,这样很容易显示出具体代码哪个位置出现泄露。

添加符号表导致动态库太大,无法在板子中复现。可以通过内置的gdb外挂,或者仅仅添加基础libc库的符号表(libc.so应该是这个?)。

mtrace

原理:对malloc函数进行封装和记录改造,使每次调用内存相关的底层函数有依据可查找,。

使用时需要在每个使用过内存函数的地方增加该工具自带的头文件。这点会比较麻烦。

当上面的几种都分析不出来时,需要了解更底层的内存管理机制。

例如:生成的每个线程都会有自己arean内存用于本身线程使用,所以在多线程的情况下会导致arean内存变多,且在达到一定数量后会继续复用。导致最终内存大范围的丢失掉。此时需要将arean每次生成大小要减少。

作者:danny113

链接:https://www.jianshu.com/p/fa2d7df5966e

来源:简书

简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。


怎样解决Linux内存泄漏? - 网络|
  • 大数据AI智能能分析彩票么? - 网络|
  • 大数据AI智能能分析彩票么? - 网络| | 大数据AI智能能分析彩票么? - 网络| ...

    怎样解决Linux内存泄漏? - 网络|
  • 你认为Flink会是下一代大数据计算引擎吗?为什么? - 网络|
  • 你认为Flink会是下一代大数据计算引擎吗?为什么? - 网络| | 你认为Flink会是下一代大数据计算引擎吗?为什么? - 网络| ...

    怎样解决Linux内存泄漏? - 网络|
  • IT培训的企业定制班是学完直接进入固定企业的吗? - 网络|
  • IT培训的企业定制班是学完直接进入固定企业的吗? - 网络| | IT培训的企业定制班是学完直接进入固定企业的吗? - 网络| ...