你在使用。net程序时使用过哪些分析器,你特别推荐哪一个?


当前回答

我一直在使用JetBrains dotTrace用于WinForms和控制台应用程序(尚未在ASP.net上测试),它工作得很好:

他们最近还增加了“个人许可证”,比企业许可证便宜得多。不过,如果有人知道一些更便宜甚至免费的,我也想听听:-)

其他回答

我在一个大型的c#应用程序中发现了很多问题。

通常情况下,问题发生在启动或关机过程中,因为正在加载插件,并且正在创建、销毁、序列化或反序列化大数据结构。它们通常不止一次地被创建和初始化,并且更改处理程序被添加了多次,这进一步加剧了问题。

在这种情况下,程序可能非常缓慢,以至于只有2个样本就足以确定错误的方法/函数/属性调用位点。

我广泛使用JetBrains dotTrace和Redgate ANTS。它们在功能和价格上相当相似。它们都提供有用的性能分析和相当基本的内存分析。

dotTrace与Resharper集成在一起,这非常方便,因为您可以在IDE中单击一下就可以分析单元测试的性能。然而,dotTrace似乎经常给出虚假的结果(例如,说一个方法运行了好几年)

我更喜欢ANTS呈现分析结果的方式。它向您显示源代码,并在每行的左边告诉您运行所需的时间。dotTrace只有一个树视图。

EQATEC分析器非常基本,需要编译程序集的特殊仪器版本,然后可以在EQATEC分析器中运行。然而,它是免费的。

总的来说,我更喜欢ANTS的性能分析,尽管如果你使用Resharper,那么dotTrace的集成是一个杀手级特性,意味着它在可用性上击败了ANTS。

免费的微软CLR分析器(。Net framework 2.0 / .Net framework 4.0)是.Net内存分析所需要的全部。

2011年更新:

Scitech内存分析器有一个相当基本的UI,但有很多有用的信息,包括一些关于非托管内存的信息,这是dotTrace和ANTS所缺乏的——如果你正在做COM互操作,你可能会发现它很有用,但我还没有找到任何分析器,使COM内存问题易于诊断——你通常必须打开windbg.exe。

在过去的几年中,ANTS分析器得到了飞速的发展,它的内存分析器有一些真正有用的特性,在我看来,这些特性使它在包方面领先于dotTrace。我很幸运,这两种工具我都有许可证,但是如果你打算同时购买一个性能和内存方面的。net分析器,那就买ANTS吧。

I must bring an amazing tool to your notice which i have used sometime back. AVICode Interceptor Studio. In my previous company we used this wonderful tool to profile the webapplication (This is supposed to be the single largest web application in the world and the largest civilian IT project ever done). The performance team did wonders with the help of this magnificent tool. It is a pain to configure it, but that is a one time activity and i would say it is worth the time. Checkout this page for details.

谢谢, 詹姆斯

AutomatedQA AQTime计时和SciTech MemProfiler内存。

我发现JetBrains的dotTrace Profiler是。net和他们的ASP的一个很好的分析工具。NET模式就是质量。