内存泄露的问题怎么排查


写的程序存在内存泄露的问题,但是自己的开发经验不够,这么多的代码不知道从何处找。

想请问问有经验的开发者,有没有什么好的 策略 去排查内存泄露具体是由于代码中的哪些行导致的?

内存泄漏 内存

鸭梨大过天 9 years, 9 months ago

什么编程语言?

C语言:
检查malloc等函数分配的内存,有没有对应的free

C++语言:
除上面外,还要找new出来的对象是否有对应的delete

C和C++语言可以使用valgrind这个工具来检测内存泄露,它可以报告导致泄露的地方,很好用。

JAVA语言,要注意检查强引用循环依赖问题,Android下可以用leakcanary工具检测泄露。

magneto answered 9 years, 9 months ago

  1. 提高编码水平,提高警惕性,避免编写常见的容易导致内存泄漏的代码

  2. 借助工具,网上搜一下,不同语言有不同的工具可以用

理查德米洛斯 answered 9 years, 9 months ago

如何查找引起内存泄漏的原因呢?一般有两种思路:第一种,安排有经验的编程人员对代码进行走查和分析,找出内存泄漏发生的位置;第二种,就是利用一些内存检查分析工具来分析,找出内存泄露的具体位置可以快速解决。

java内存泄露及检测方法

我就是胖次君 answered 9 years, 9 months ago

Your Answer