我的应用程序运行了几个小时,任务管理器的任何值(vmsize,memory)都没有增加.但是,在几个小时之后,我失去了内存错误.
在sysinternals中,我看到“虚拟大小”不断增加,当它达到2GB左右时,我开始收到内存错误.
那么什么样的内存泄漏呢?
我如何用代码演示?是否可以使用任何内存值不增加但只有sysinternsl进程资源管理器中的虚拟大小增加的代码来重现相同的东西?
感谢任何建议
虚拟大小是进程已分配的页面数
当前不在工作集中的页面(物理上加载在RAM中)将在系统的页面文件中.
当前不在工作集中的页面(物理上加载在RAM中)将在系统的页面文件中.
通常你分配的内存不被释放.如果没有像Rational Purify或Boundschecker这样的特殊工具,可能很难在代码中跟踪代码.使用sysinternals你会发现必须有泄漏,但不会告诉你在哪里…
如果您的软件不是很大,可以尝试注销“新建”和“删除”,并通过管理已分配对象的列表来查看内存中是否存在太多对象(使自己的内存调试器可以这么说).在windows界面中有一些助手像CRT memory checking utils from Microsoft.它们在某些情况下很有用.
原文地址:https://www.jb51.cc/windows/371298.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。