Linux 这个现象是内存泄漏吗?

Kende0120 2015-05-08 12:36:44
用top看程序使用的RSS, 随着处理次数的增加,RSS会一直增大

检查过程序都有内存释放处理,没有什么遗漏的

想问一下,RSS一直增加一定是内存泄露吗?
如果是,有什么方法可以检测出,
检测一定要用专用的工具吗

谢谢。
...全文
442 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
羽飞 2015-05-09
  • 打赏
  • 举报
回复
引用 4 楼 Kende0120 的回复:
[quote=引用 2 楼 hnwyllmm 的回复:] RSS增长不一定是内存泄露 RSS:该进程占用的物理内存的总数量,单位是KB。 进程占用的内存首先体现在虚拟内存上,如果进程访问到某个内存的时候,才会给他分配真实的物理内存。当然物理内存是有限的,如果增长到限制的最大值,那就不会再增长了,这时候不增长也不能说没有内存泄露。 是否真的有内存泄露,可以运行的时间延长,观察进程占用的内存是否确实一直增长 内存泄露检测工具是一种辅助手法,能够帮助程序员检测出肉眼不易观察的内存泄露,但是也不能完全依赖
先纠正一下,不是RSS, 是RES。 程序的处理顺序 :接收到命令后分配内存,启动子线程,运行后再关掉子线程,最后释放内存。 每次接收到命令后RES都会增大,即使释放内存后也不会减少,而是随着运行的次数增加而持续增大 这个有问题吗? [/quote] 如果是RES的话,是不是可能用了第三方的内存库,或者内存池,内存并没有释放,因此内核并没有释放对应的物理内存,反而运行时间久了还会增加
Kende0120 2015-05-09
  • 打赏
  • 举报
回复
引用 3 楼 wangzuxi 的回复:
内存泄露调试工具很多,valgrind比较有名
谢谢,我会下载来试用一下。
Kende0120 2015-05-09
  • 打赏
  • 举报
回复
引用 2 楼 hnwyllmm 的回复:
RSS增长不一定是内存泄露 RSS:该进程占用的物理内存的总数量,单位是KB。 进程占用的内存首先体现在虚拟内存上,如果进程访问到某个内存的时候,才会给他分配真实的物理内存。当然物理内存是有限的,如果增长到限制的最大值,那就不会再增长了,这时候不增长也不能说没有内存泄露。 是否真的有内存泄露,可以运行的时间延长,观察进程占用的内存是否确实一直增长 内存泄露检测工具是一种辅助手法,能够帮助程序员检测出肉眼不易观察的内存泄露,但是也不能完全依赖
先纠正一下,不是RSS, 是RES。 程序的处理顺序 :接收到命令后分配内存,启动子线程,运行后再关掉子线程,最后释放内存。 每次接收到命令后RES都会增大,即使释放内存后也不会减少,而是随着运行的次数增加而持续增大 这个有问题吗?
zuxi 2015-05-08
  • 打赏
  • 举报
回复
内存泄露调试工具很多,valgrind比较有名
羽飞 2015-05-08
  • 打赏
  • 举报
回复
RSS增长不一定是内存泄露 RSS:该进程占用的物理内存的总数量,单位是KB。 进程占用的内存首先体现在虚拟内存上,如果进程访问到某个内存的时候,才会给他分配真实的物理内存。当然物理内存是有限的,如果增长到限制的最大值,那就不会再增长了,这时候不增长也不能说没有内存泄露。 是否真的有内存泄露,可以运行的时间延长,观察进程占用的内存是否确实一直增长 内存泄露检测工具是一种辅助手法,能够帮助程序员检测出肉眼不易观察的内存泄露,但是也不能完全依赖
此后三年 2015-05-08
  • 打赏
  • 举报
回复
循环调用疑似泄露的代码, 如果有内存泄露, 效果很明显。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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