memleax
memleax检测内存的思想是,监控进程内存分配和释放,打印出长期未释放的内存,因此更擅长排查内存增长问题。
memleax不需要单独编译程序,直接运行你的程序,使用memleax命令检测进程id
安装
//centos7
yum install libunwind-devel graphviz libdwarf elfutils-libelf-devel
git clone https://github.com/WuBingzheng/memleax.git
cd memleax
mkdir build
cd build
cmake ../
make -j6
make install
使用
1、首先运行你的程序
2、/usr/bin/memleax -e 60 62240 62240为被检测的进程id, 60表示检测60s未释放的内存
会直接打印,长期未释放内存,建议启动自己测程序,先完成所有初始化操作后,再使用memleax检测。
主要观测 free=0的,因为如果不是0,可能还是会释放的
缺点:只适合检测比较小的程序,计算量太大的程序会变慢,可能导致功能不正常。