根据 MSDN,FxCop 是一个应用程序,它分析托管代码程序集(针对 .NET Framework 公共语言运行时的代码)并报告有关程序集的信息,例如可能的设计、本地化、性能和安全改进。
FxCop 是否有任何预定义的规则,可用于发现潜在的内存泄漏代码?
更新:这是我使用 ANTS Memory Profiler 进行调查的结果 -链接
它只显示非托管内存增加。也许我没有以正确的方式使用它。我会很高兴有任何建议
FxCop 具有与未处置对象相关的规则。未能调用 Dispose 或以其他方式(通过使用块)处理实现 IDisposable 的对象可能会导致泄漏。但是,我不会认为 FxCop 是识别内存泄漏的主要工具。
这些 StackOverflow 问题涵盖了专门为识别内存泄漏而创建的合适工具的主题:
https://stackoverflow.com/questions/2259433/how-to-detect-memory-leaks-in-c-sharp-application
我过去使用的工具之一是 AQTime,它同时进行性能分析和分配分析。标准版可免费使用:http ://smartbear.com/products/free-tools/aqtime-standard
FxCop 不是发现内存泄漏的正确工具。它是您用来确保您的代码遵循既定准则的东西。
市场上有一些内存分析器可用。Net Memory Profiler、JetBrains dotTrace、来自 RedGate 的 ANTS Profiler
CLR Profiler 是免费的,包括一些内存分析工具。这是 .NET 4 的一个:http: //www.microsoft.com/en-us/download/details.aspx?id=16273