我的应用程序的目的是消除噪音。当我连续运行并使用 Process Explorer 观察内存使用情况时,我注意到 Private Bytes 缓慢增加,例如从 11.8 MB 到 13 MB 等等。
我的一位同事告诉我,它上升到 1 GB 并且应用程序崩溃了。
我该如何解决这个问题?我已经用 C++ 编写了这个应用程序。
我的应用程序的目的是消除噪音。当我连续运行并使用 Process Explorer 观察内存使用情况时,我注意到 Private Bytes 缓慢增加,例如从 11.8 MB 到 13 MB 等等。
我的一位同事告诉我,它上升到 1 GB 并且应用程序崩溃了。
我该如何解决这个问题?我已经用 C++ 编写了这个应用程序。
您可以从“Windows 调试工具”中获取“UMDH”。有了这个,您可以使用 Windows 的内置支持来查找内存泄漏。
有关详细信息,请参阅使用 UMDH 查找用户模式内存泄漏
另请参阅:UMDH(Windows 调试器
您需要使用 SDK 或 DDK下载适用于 Windows 的调试工具。您还可以从MSDN Archive下载旧版本,它应该足以使用 UMDH。
对此没有快速解决方法,尤其是在 C++ 内存维护中,您必须在整个开发过程中进行练习,而不是在最后一记耳光。而且由于它几乎可以在您的代码中的任何位置(没有双关语),因此在此处发布代码并不实际。
我唯一的建议是寻找new
运营商的用途,并确保有一个随附的delete
. 还对您的类/函数/等使用单元测试。可以帮助缩小问题范围。
祝你好运。