【问题标题】:Private bytes memory increases over the period of time私有字节内存在一段时间内增加
【发布时间】:2013-07-21 09:27:19
【问题描述】:

我的应用程序的目的是消除噪音。当我连续运行并使用 Process Explorer 观察内存使用情况时,我注意到 Private Bytes 缓慢增加,例如从 11.8 MB 到 13 MB 等等。

我的一位同事告诉我,它上升到 1 GB 并且应用程序崩溃了。

我该如何解决这个问题?我已经用 C++ 编写了这个应用程序。

【问题讨论】:

  • 搜索插件调用“Memory Leak Detector”
  • 您需要控制数据结构正在使用的内存,并删除内存中不必要的数据。从几 MB 到 1GB 是一件大事
  • @RanEldan 我听说过 valgrind,但没有听说过 valingaurd。
  • @Borgleader 拼写错误
  • 感谢所有回复。我会尝试 Valgrind。事实上,我们已经使用了 Coverity,我已经解决了 Coverity 指出的所有问题。

标签: c++ visual-c++ memory memory-management memory-leaks


【解决方案1】:

对此没有快速的解决方法,尤其是在 C++ 内存维护中,您必须在整个开发过程中练习,而不是在最后一刀切。而且由于它几乎可以在您的代码中的任何位置(不是双关语),因此在这里发布代码并不实际。

我唯一的建议是寻找new 运算符的用法,并确保有一个随附的delete。还在您的类/函数/等上使用单元测试。可以帮助缩小问题范围。

祝你好运。

【讨论】:

    【解决方案2】:

    您可以从“Windows 调试工具”中获取“UMDH”。有了这个,您可以使用 Windows 的内置支持来查找内存泄漏。

    欲了解更多信息,请参阅Using UMDH to Find a User-Mode Memory Leak

    另见:UMDH (Windows Debuggers

    您需要使用 SDK 或 DDK 下载 Debugging Tools for Windows。您也可以从MSDN Archive 下载旧版本,应该足以使用UMDH。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多