linux怎么看某个进程有没有内存泄露啊?

david19800108 2011-01-10 12:14:05
我用ps -F -p 进程号 持续查看进程情况,数小时。

输出两个列中SZ好像一直保持不变,但是RSS列的值一直增大,这个说明程序有内存泄露吗?
...全文
1818 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mochencui 2011-01-14
  • 打赏
  • 举报
回复
试试 valgrind ./a.out
这个 valgrind 是系统自带的命令
valgrind
  Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。Valgrind这个名字取自北欧神话中英灵殿的入口。
  Valgrind的最初作者是Julian Seward,他于2006年由于在开发Valgrind上的工作获得了第二届Google-O'Reilly开源代码奖。
  Valgrind遵守GNU通用公共许可证条款,是一款自由软件。
  到3.3.0版本为止,Valgrind支持x86、x86-64以及PowerPC上的Linux。除此之外,还有一些其它非正式支持的类Unix平台(如FreeBSD、NetBSD以及Mac OS X)。
请叫我车车 2011-01-13
  • 打赏
  • 举报
回复
试试 valgrind ./a.out
这个 valgrind 是系统自带的命令
valgrind
  Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。Valgrind这个名字取自北欧神话中英灵殿的入口。
  Valgrind的最初作者是Julian Seward,他于2006年由于在开发Valgrind上的工作获得了第二届Google-O'Reilly开源代码奖。
  Valgrind遵守GNU通用公共许可证条款,是一款自由软件。
  到3.3.0版本为止,Valgrind支持x86、x86-64以及PowerPC上的Linux。除此之外,还有一些其它非正式支持的类Unix平台(如FreeBSD、NetBSD以及Mac OS X)。
李亚超 2011-01-10
  • 打赏
  • 举报
回复
不一定,有些程序在运行时要动态申请和释放内存
wangtingguang 2011-01-10
  • 打赏
  • 举报
回复
可以通过/proc/进程号/status 中的VmSize查看内存的变化,还有free命令
可以写个定时任务,定时将status保存到某个文件中,运行一段时间。
PID=`ps -ef |grep 程序名 |sed -n '2p' |awk '{print $2}'`
free >> $DIR/memory.log
echo "-----/proc/$PID/status-------">>$DIR/memory.log

定时任务可以在crontab中设置每分钟统计一次。

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧