tcmalloc分析内存泄漏
1.安装环境
在程序的运行环境上安装tcmalloc,和google的pprof
默认安装路径 /usr/local/lib下
运行程序demo
执行如下命令,运行demo程序
LD_PRELOAD=/usr/local/lib/libtcmalloc.so HEAPPROFILE=pwd
/heap ./demo
这里没加其他参数,全部采用了默认值,例如每使用多少内存写文件,tcmalloc的内存池大小等
测试demo,复现内存问题,获取tcmalloc记录的内存文件
demo执行目录下生成了.heap的后缀文件
利用生成的记录内存的文件生成图
pprof dmo heap_38.0006.heap --svg > ret.svg
pprot <可执行程序> <生成的文件> --svg > 结果
打开图片即可看到各个模块的内存占用百分比,对照代码排查内存泄漏。