jemalloc排查内存泄露
安装jemalloc
1 | apt install libjemalloc2 |
安装svg图片生成工具
1 | apt install graphviz gv |
测试代码
1 |
|
编译
1 | g++ -o test -g test.cpp |
运行
1 | MALLOC_CONF=prof:true,lg_prof_interval:26 LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 ./test |
prof:true表示打开堆检测,lg_prof_interval:26使jemalloc开启prof并且每2^26字节(64M)大小进行一次dump
生成内存泄露图
1 | jeprof --pdf a.out --base=jeprof.1646511.0.i0.heap jeprof.1646511.100.i100.heap > result.pdf |
–base表示基准堆,即第一次dump的堆,后面每次dump的堆都会和基准堆进行比较,从而找出内存泄露的函数
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 ciiki的博客!
评论