tcmalloc google heap profiler调查内存泄露
最后更新于
最后更新于
用tcmalloc的heap profiler可以调查内存泄露问题,比如下面这段代码,每次会随机泄露一小块内存
编译的时候不是必须链接tcmalloc,运行时用LD_PRELOAD指定tcmalloc path也可以,编译好后指定LD_PRELOAD和HEAPPROFILE运行程序,HEAPPROFILE指定了memory heap文件dump的地址
也可以比较两个heap之间的diff,比如某一段时间内存突然涨上去了就可以用两个heap文件来分析
第一列显示了使用的物理内存MB,第四列显示了函数本身和它的调用函数总共申请的内存,第二列和第五列是第一列和第四列的百分比,第三列是第二列的累积和
就我们这个简单的例子来看,很清晰的就能看到在leak_func里泄露了5819.9MB内存
很快就dump出来很多heap文件,可以直接分析某个文件的内存分配