最好的 .NET 内存和性能分析器? [关闭]

Posted

技术标签:

【中文标题】最好的 .NET 内存和性能分析器? [关闭]【英文标题】:Best .NET memory and performance profiler? [closed] 【发布时间】:2010-09-08 04:09:19 【问题描述】:

我们正在使用JetBrains'dotTrace。可以推荐哪些其他分析工具更好地分析 C# Windows Forms 应用程序?

【问题讨论】:

您可能想尝试我们全新且完全免费的NProfiler 社区版。 【参考方案1】:

我们像您一样使用 DotTrace,但过去我们使用 RedGate 的 Ants Profiler。它也是一个不错的工具。

【讨论】:

【参考方案2】:

没有。我已经尝试了市场上几乎所有的 .NET 分析器(ANTS、vTune、OptimizeIt、DevPartner、YourKit),我认为 dotTrace 是其中最好的。它是我使用过的仅有的两个分析器之一(另一个是 YourKit),它的开销足够低,可以处理高度 CPU 密集型的应用程序。

当且仅当您的应用程序相对较轻时,我才推荐ANTS Profiler。它的逐行统计数据有时非常有用,但它们以分析效率为代价。

【讨论】:

我在一个完全使用处理器的优化器上使用 ANTS,它似乎工作正常。 我也非常喜欢 dotTrace 系列。不过需要注意的一件事是,对于跟踪模式中相关的任何 Linq-to-Sql (L2S) (针对已编译查询和普通查询),它会产生非常不准确的时间。采样模式可能没有这个问题,但用处不大。 dotTrace 4 系列在后期测试版中也存在同样的问题。不知道他们是否真的解决了这个问题。我猜这是严重依赖表达式树的代码的普遍问题。 并不是说其他​​分析器不会受此影响。如果我没记错的话,ANTS 分析器在这方面做得更好,但与 dotTrace 相比,它的用户界面效率低下/令人讨厌。我测试了另一种产品,它也有这个问题。不记得是哪一个了——(以前)最知名的产品之一。无论如何,这是一个相当大的烦恼,因为您无法过滤掉不准确的测量方法,也无法按比例放置值。 不准确我的意思是太多太多次了。 我很惊讶没有人提到你用 VS(终极版和专业版)得到了什么:msdn.microsoft.com/en-us/library/z9z62c29.aspx【参考方案3】:

Ants Profiler 刚刚发布了第 4 版。 我们使用它,并且对它非常满意。有 14 天的试用期可供评估(大多数产品都是如此)。

【讨论】:

【参考方案4】:

对于内存分析,你有免费的 CLR 分析器和商业的.NET memory profiler。两者都很棒,但后者更精致。

【讨论】:

【参考方案5】:

我对 RedGate ANTS 非常满意。我唯一尝试过的另一个是 Visual Studio Team 附带的,它很烂。

【讨论】:

我实际上更喜欢 VS,它比 ANTS 给我更多的信息。您可能更喜欢 ANTS 分析器,但我不同意 VS 很烂。当您知道如何使用它时,它会很好地工作。 没有了。对于内存分析,我现在推荐 SciTech。它为您提供由杂散委托/事件处理程序引起的内存泄漏的摘要,并在对象被最终确定而不是显式处置时向您发出警告。【参考方案6】:

nProf 是一个很好的工具,如果您正在寻找免费的东西。它在某些方面有点挑剔,而且有点小车,但如果你的预算很紧,它就可以完成这项工作。

【讨论】:

你如何使用它?我在哪里可以找到一些文档? 似乎最近 nProf 已经为它注入了一些活力。在过去的几年里,它一直处于停滞状态。虽然仍然没有文档。我认为你最好的选择就是尝试一下。这是一个非常苗条的程序,没有很多选择。基本上,您只需从分析器启动程序,它就会记录每个方法运行所需的时间。程序运行完成后,它会为您提供每种方法花费的总时间。最好的办法是运行应用程序的慢速部分,即使一次只执行一个操作,看看哪里慢了。【参考方案7】:

我们和AQTime 相处得很好。从我们的角度来看,伟大的事情是它也处理了我们代码的非托管部分。

【讨论】:

【参考方案8】:

它还没有被提及,但是对于内存分析来说,Windbg 是尽可能彻底和低级的。将它与 sos.dll 结合使用非常强大,但学习曲线相当陡峭。

虽然它是一个免费工具,但 Tess Ferrandez 的博客是一个很好的起点。 ANTS 和其他分析器对用户更加友好,但在我看来,Windbg 可以像其他人一样对托管堆进行切片和切块。

【讨论】:

【参考方案9】:

我使用了EQATEC Profiler。它是免费的,并且是代码分析器,而不是内存分析器。

【讨论】:

它非常基础,但如果你想要一个免费的分析器,总比没有好。 对于新读者;自 2013 年 12 月起,EQATEC Profiler 将被逐步淘汰,取而代之的是非免费的 Telerik JustTrace。 Sitefinity 让我对 Telerik 的任何事情都感到厌烦。【参考方案10】:

自最近发布以来,我一直在使用免费的SlimTune。虽然它有一个最小的界面,但它非常易于使用,并提供了很好的诊断功能,这对我有很大帮助。它目前支持两种显示器,其中一种类似于nProf。它来自与 SlimDX 相同的开发人员,因此我希望该工具在短期内会变得更好。

编辑:据我所知,它还不支持内存分析。

【讨论】:

【参考方案11】:

您应该查看SpeedTrace。我们对该软件感到满意,它对我们解决问题的根本原因有很大帮助。

【讨论】:

以上是关于最好的 .NET 内存和性能分析器? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

.NET内存性能分析宝典

分析(性能和内存).net 应用程序指南

带有 API 的 .NET 性能分析器 [关闭]

.NET程序内存分析工具CLRProfiler的使用(性能测试)

Android基础性能检测与分析

.NET内存性能分析指南