【问题标题】:Which is the best tool to test for Memory leak in Win32/COM application?哪个是测试 Win32/COM 应用程序中内存泄漏的最佳工具?
【发布时间】:2009-06-05 07:18:36
【问题描述】:

我正在寻找一种可以长时间(1-3 天)监控正在运行的应用程序 (Win32/COM) 并检测内存泄漏(如果有)的工具。有什么建议么? 它是一个调用大量非托管代码的 .NET Windows 应用程序。

【问题讨论】:

  • 您是要检测未管理代码中的内存泄漏,还是要检测 .Net 应用程序中的内存泄漏(泄漏非托管资源 - 未正确处理等)?
  • 我正在寻找两者,但主要是在非托管代码中。

标签: winapi com memory-leaks


【解决方案1】:

你可以试试Memory Validator

【讨论】:

    【解决方案2】:

    iJeeves,BoundsChecker 和 .NET 内存分析的组合可以帮助您进行内存分析。 DevPartner Studio 10.5 于 2011 年 2 月 4 日发布,支持 64 位应用程序。根据您的应用程序原始内存占用,您可以使用错误检测内存跟踪分析运行 x86 构建配置,只要您保持低于 2gb 整体进程虚拟地址限制,如果您将 exe 与 LARGE_ADDRESS_AWARE 链接并在 x64 操作系统上运行,则为 3gb额外的内存。 x64 构建配置可以让您在系统 RAM 允许的范围内提升到最高水平,至少在您开始分页和性能停止之前是这样。您可以在 .NET 进程下为您的本机代码运行 BC 错误检测,但托管代码中的对象泄漏或持有的引用需要使用 .NET 内存分析器进行第二次传递。我们还没有可以处理具有完整混合堆栈跟踪的混合 C++ 和 .NET 代码的单遍分析,但我们可以处理行上的托管代码、越界的任何 PInvokes 以及行下的所有本机活动(分为两部分)通过。无耻的插件:我在 DevPartner 团队工作。上面指向 microfocus.com 的链接准确地解析到 DevPartner 页面。发货时查找 DPS 10.5 并拉下 eval 以查看它是否满足您的需求。

    【讨论】:

      【解决方案3】:

      AQTime 不错,我用过几次,它帮助我解决了一些棘手的错误。

      【讨论】:

        【解决方案4】:

        我曾经使用 Bounds Checker,但现在我要么使用 Micrsoft 内置的 CRT library,要么自己构建。

        【讨论】:

          【解决方案5】:

          如果您正在寻找 pay$ 的工具,那么 DevPartner 非常值得使用。它对托管和非托管代码进行内存泄漏检测。

          【讨论】:

            【解决方案6】:

            Application Verifier 是免费的,来自 Microsoft。它检测内存泄漏、双重释放、覆盖和许多其他事情。我一直在使用它,它帮助我找到了一些令人讨厌的问题。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2010-11-11
              • 1970-01-01
              • 1970-01-01
              • 2010-09-29
              • 1970-01-01
              • 2013-05-10
              • 2012-09-13
              相关资源
              最近更新 更多