我正在寻找一种工具,可以长时间(1-3天)监视正在运行的应用程序(Win32 / COM),并检测内存泄漏(如果有的话)。有什么建议?
它是一个.NET Windows应用程序,它调用许多非托管代码。
6 个答案:
答案 0 :(得分:1)
答案 1 :(得分:1)
iJeeves,BoundsChecker和.NET内存分析的组合应该可以帮助您进行内存分析。 DevPartner Studio 10.5于2011年2月4日发布,支持64位应用程序。根据应用程序原始内存占用情况,只要保持低于2gb整体进程虚拟地址限制,就可以运行x86构建配置和错误检测内存跟踪分析,如果将exe链接到LARGE_ADDRESS_AWARE并在x64操作系统上运行,则可以运行3gb额外的RAM。 x64构建配置可以让你达到系统RAM允许的最高值,至少在你开始分页和性能研究停顿之前。您可以在.NET进程下为本机代码运行BC错误,但是托管代码中的对象泄漏或保留引用需要使用.NET内存分析器进行第二次传递。我们还没有一个单一的传递分析可以处理带有完整混合堆栈跟踪的混合C ++和.NET代码,但是我们可以处理行上方的托管代码,跨越该行的任何PInvokes,以及两行下面的所有本机活动经过。无耻的插件:我在DevPartner团队工作。上面指向microfocus.com的链接会逐步解析为DevPartner页面。在发货时查找DPS 10.5并下拉eval以查看它是否符合您的需求。
答案 2 :(得分:0)
AQTime很好,我多次使用它,它帮助我解决了一些棘手的错误。
答案 3 :(得分:0)
我过去常常使用Bounds Checker但是现在我要么使用内置的CRT library,要么自己构建。
答案 4 :(得分:0)
如果您正在寻找付费$的工具,那么DevPartner非常值得使用。它对托管和非托管代码进行内存泄漏检测。
答案 5 :(得分:0)
Application Verifier免费并且来自Microsoft。它可以检测内存泄漏,双重释放,覆盖和许多其他事情。我一直都在使用它,它帮助我找出了一些令人讨厌的问题。