程序Top显示VIRT、RES增长,但是valgrind测试没有内存泄漏

cyg19860205 2017-12-21 02:38:10
环境:ubuntu16.04 32位 操作系统
valgrind-3.11.0

valgrind启动程序后,top -p pid检测VIRT、RES,没经过一次业务处理,VIRT增长16k、32K、64k不等,RES经过VIRT的几次增长后会增长。

程序正常退出后,valgrind的日志确显示没有内存泄漏。

这是什么问题呢?从Top工具上看是有内存泄漏,但是Valgrind却没有内存泄漏。

就像程序在一直在申请内存(系统占用的内存越来越多),退出时释放了申请的内存的现象。


...全文
2014 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
月光xia漫步 2021-03-26
  • 打赏
  • 举报
回复
我说一下我这两天遇到的遭遇吧 服务在容器里运行,业务处理时,内存占用到100%被docker强制重启了,看到内存增长曲线,开始疯狂valgrind查找内存泄漏的问题。 搞了一天,发现是不同机房服务器,访问redis耗时不同,同地区同机房0.1ms,不同地区到4ms。所以原有的异步调用只是把数据塞进去,但是消费者消费不及,导致磁盘逐步增加,最终导致内存占用100%被kill掉了。 所以,遇到内存持续增加情况,不一定是内存泄漏,
heronism 2018-01-16
  • 打赏
  • 举报
回复
持续长时间观察,如果内存一直增长则可能有泄漏,valgrand会给出提示的,否则可能不是
hb19860307 2018-01-15
  • 打赏
  • 举报
回复
先保证valgrind能够正常检测出内存泄露,如果正常的话,按说不应该会出现内存涨,top的内存增长未必准确,个人意见。
zhxianbin 2017-12-21
  • 打赏
  • 举报
回复
有申请、有释放就没有泄露,运行过程中内存变化很正常吧

23,121

社区成员

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

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