【问题标题】:Memory leak detectors [closed]内存泄漏检测器[关闭]
【发布时间】:2012-10-11 15:37:51
【问题描述】:

我正在阅读一些关于内存泄漏的文章。我遇到了一些工具,例如:

  1. perfmon+debugdiag 是默认的 windows 工具
  2. 困了
  3. AMD 代码分析师
  4. 在 C++ 的 stadx.h 文件中包含 debug_new
  5. wingdb 与 SOS dll
  6. 还有一些付费工具。

我想知道perfmon+debugdiag 是否足以检测所有内存泄漏?或者在某些情况下是否有其他更好的工具。我想知道什么时候用什么。

假设我有一个调用第 3 方非托管 dll 的 C# 应用程序。如何找到第 3 方 DLL 中的泄漏?

【问题讨论】:

  • 即使我们假设您用来检测内存泄漏的工具是完美的,它也永远无法检测到所有。您本质上要求的是解决停止问题的方法。
  • @quantumSoup,你能更​​彻底地解释一下吗?如果他重现了他的软件的所有用例,该工具不会达到哪种情况?
  • @Spidey 这是一个相当大的假设。但是,是的,如果你可以做到,当然。
  • 是的,我知道这是一个很大的假设,但我担心我应该寻找一些奇怪的案例。

标签: c# c++ memory-leaks


【解决方案1】:

到目前为止,我用于此任务的最佳工具是.NET Memory Profiler

【讨论】:

  • 但同样,您需要了解有关您的应用程序的一些信息,以便知道要寻找什么
  • .net 内存分析器仅用于管理泄漏我猜。
【解决方案2】:

Red Gate 的 ANTS Memory Profiler 是一个非常好的工具:http://www.red-gate.com/products/dotnet-development/ants-memory-profiler/features/

我已经成功地将它用于托管 DLL,但它也可以分析 COM+ 应用程序。

【讨论】:

    猜你喜欢
    • 2016-05-14
    • 2012-07-16
    • 1970-01-01
    • 2019-09-09
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多