Linux进程内存泄露分析

1、valgrind
Valgrind 不对静态数组 (分配在栈上) 进行边界检查。valgrind --tool=memcheck ./test

valgrind的memcheck工具。但是这个性能极低,不具备可用性。

2、heaptrack
构建heaptrack的想法源于对valgrind的massif工作的痛苦。 agavi在内存和时间上有巨大的开销,有时会阻止你在更大的实际应用程序上运行它。

对于简单堆分析器来说,Valgrind所做的大部分不需要。

heaptrack-- 一个用于Linux的堆内存分析器

这个工具也是从valgrind的massif的思路得到启发并做重设计和重实现的产物,

1)代码级别的跟踪

2)栈回溯

3)内存profile

4)无嵌入性

5)高性能

不是调试版程序,也可以运行时插入

heaptrack program param

或者 heaptrack --pid 进程pid

启动后,会有输出信息告诉你生成的追踪文件在哪生成

编译的程序要-lpthread才可以注入监控,heaptrack工具。只能排查,你注入监控。 到停止监控。这过程中的。内存泄露。

heaptrack_print 工具是一个具有最小依赖性的命令行 应用程序。 它接受堆概要文件,分析它,并将结果以ASCII格式打印到 命令行。

在最简单的形式中,你可以像这样使用它:

heaptrack_print heaptrack.APP.PID.gz | less

3、调用分析
gcc -pg xx.c         gmon.out

OProfile: Linux 平台上的一个功能强大的性能分析工具,使用参考https://www.ibm.com/developerworks/cn/linux/l-oprof/
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值