可能重复:
有哪些好的 .NET Profiler?
我正在寻找好的 .NET CLR 内存分析工具。
我的关键要求是它能很好地与 IIS 和独立的 CLR 应用程序配合使用。理想情况下,我会看到分配了哪些对象,分配了哪些对象以及它们的大小?
是否有人对您乐于推荐的特定工具有任何好的经验?
可能重复:
有哪些好的 .NET Profiler?
我正在寻找好的 .NET CLR 内存分析工具。
我的关键要求是它能很好地与 IIS 和独立的 CLR 应用程序配合使用。理想情况下,我会看到分配了哪些对象,分配了哪些对象以及它们的大小?
是否有人对您乐于推荐的特定工具有任何好的经验?
我目前正在评估Scitech .NET Memory Profiler 3.1和ANTS Memory Profiler 5.1。我在一两年前尝试了 JetBrains,但它不如 ANTS,所以这次我没有打扰。从阅读网站来看,它在内存分析方面似乎不如其他两个好。
ANTS 和 Scitech 内存分析器都具有另一个没有的功能,因此哪个最好取决于您的偏好。一般来说,Scitech 提供更详细的信息,而 ANTS 则在识别泄漏对象方面确实令人难以置信。总的来说,我更喜欢 ANTS,因为它可以快速识别可能的泄漏。
根据我的经验,以下是每种方法的主要优点和缺点:
ANTS 和 Scitech .NET Memory Profiler 的共同特点
蚂蚁
Scitech .NET 内存分析器
总而言之,我认为 ANTS 可以帮助您更快地找到泄漏的内容,而 Scitech 一旦您知道要查看什么(例如创建时的堆栈跟踪),就会提供有关您的整体应用程序内存性能和各个对象的更多详细信息。如果将堆栈跟踪和未处理的一次性对象的跟踪添加到 ANTS 中,我不会看到需要使用其他任何东西。
奇怪的是这里还没有提到CLR Profiler 。它是免费的并且运行良好。
请注意 Microsoft 自己的网站上提供的多个旧版本。截至 2011 年 11 月,最新版本似乎是这个:最新版本 (备用链接)
如果您感到非常绝望,可以将WinDbg与 .Net 框架附带 的 Son-of-Strike 库(SOS.DLL) 一起使用。
我本人是JetBrains Profiler的忠实粉丝
.Net Memory Profiler在我之前的项目中帮助了我很多。它不是免费的,但非常好。
.NET Memory Profiler 是一个强大的工具,用于查找内存泄漏并优化用 C#、VB.NET 或任何其他 .NET 语言编写的程序中的内存使用。
我第二个ANTS profiler。
除了显示您需要的所有内容之外,它还会绘制简单的图表,您可以在其中查看执行时间最长的内容以及占用内存的内容。当您单击 graphp 时,它将向您显示代码中的对应行。
而且我喜欢在执行时间过长的代码行上淹没小的进度条。
我目前正在使用ANTS Profiler。这是一个非常好的工具,具有许多分析详细信息选项,并且可以很好地与独立应用程序、开发服务器和 IIS 配合使用。
由于每个人都列出了可用的工具,我想我会指出你的 .NET 分析器的完整列表:http: //sharptoolbox.com/categories/profilers-debuggers
您会在此处找到此处建议的工具和所有其他工具,每个工具都有其建议的简短描述。
多年来,我使用Aqtime取得了巨大成功。我尝试了 ANTS 和其他人,但又回到了 Aqtime,因为我也在非托管代码中进行了大量开发。