系统内存泄露? 关于内存泄露问题,求教

TheNewIpad 2013-04-07 09:38:50
我自己的驱动 自己的上层代码。 在执行7 × 24小时后,发生了如下现象
1. 重新打开一个任务管理器,系统提示,“系统资源不足,无法完成请求”
2. 打开一个图片,同样提示“系统资源不足,无法完成请求”

可是,在重新测试,监控系统如下资源,没有发现任何增长
1. memory -> pool nonpaged bytes
2. memory -> pool paged bytes
3. paging file -> % usage
4. process -> private bytes (我的上层程序进程)
5. process -> virtual bytes (我的上层程序进程)
6. process -> thread count (我的上层程序进程)
7. process -> handle count (我的上层程序进程)

上述测试中,第一项(memory -> pool nonpaged bytes)在3天内涨了9倍,但是第4天,居然又回来了。除此之外,其他无泄露。

然后,我不死心,重新用如下工具分别执行了测试。
1、 umdh 测试上层应用程序, 没有发现内存泄露
2、 pool monitor 监控我自己的驱动程序, 没有发现内存泄露。


可是,清明过后的今天,在测试机上还是出现了,不能打开图片,不能打开任务管理器,等一般服务访问失败的现象。 求教,这是怎么回事。
...全文
174 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kavon_zhang 2013-04-10
  • 打赏
  • 举报
回复
whizer 2013-04-10
  • 打赏
  • 举报
回复
TheNewIpad 2013-04-09
  • 打赏
  • 举报
回复
找到问题了, 是driver泄露,由于我自己忘记了 MDL等内存创建时,没有标签,因此poolmonitor监控不到。 而我又过分相信poolmonitor。 至于为啥pool nonpaged bytes 涨了又降回来,则不明确为啥会导致该现象。 准备结贴, 来人拿分。
TheNewIpad 2013-04-08
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
检查是否资源泄漏的办法之一: 在任务管理器 进程 查看 选择列 里面选择:内存使用、虚拟内存大小、句柄数、线程数、USER对象、GDI对象 让你的程序(进程)不退出,循环执行主流程很多遍,越多越好,比如1000000次甚至无限循环,记录以上各数值,再隔至少一小时,越长越好,比如一个月,再记录以上各数值。如果以上两组数值的差较大或随时间流逝不断增加,则铁定有对应资源的资……
哥, 我方法给你写的一样啊。 幕友发现增长。
tonforce 2013-04-07
  • 打赏
  • 举报
回复
3天涨了9倍,如果这个9倍是意外的增长的话,不管内存回不回来,个人意见啊:那十有八九是内存泄露了。 接下来楼主就准备哭三天,然后乐三天了 呵呵
woaishuo2011 2013-04-07
  • 打赏
  • 举报
回复
会不会是其他的问题?
赵4老师 2013-04-07
  • 打赏
  • 举报
回复
检查是否资源泄漏的办法之一: 在任务管理器 进程 查看 选择列 里面选择:内存使用、虚拟内存大小、句柄数、线程数、USER对象、GDI对象 让你的程序(进程)不退出,循环执行主流程很多遍,越多越好,比如1000000次甚至无限循环,记录以上各数值,再隔至少一小时,越长越好,比如一个月,再记录以上各数值。如果以上两组数值的差较大或随时间流逝不断增加,则铁定有对应资源的资源泄漏!

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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