你在使用。net程序时使用过哪些分析器,你特别推荐哪一个?
当前回答
我广泛使用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.
谢谢, 詹姆斯
最近我一直在测试Telerik的《JustTrace》,尽管它离成品还有一段距离,但他们正在朝着正确的方向前进。
我在一个大型的c#应用程序中发现了很多问题。
通常情况下,问题发生在启动或关机过程中,因为正在加载插件,并且正在创建、销毁、序列化或反序列化大数据结构。它们通常不止一次地被创建和初始化,并且更改处理程序被添加了多次,这进一步加剧了问题。
在这种情况下,程序可能非常缓慢,以至于只有2个样本就足以确定错误的方法/函数/属性调用位点。
蚂蚁分析器。我用过的不多,但我对ANTS并没有什么抱怨。可视化真的很有帮助。
我们公司为。net选择了YourKit Profiler,因为它是性价比最高的(价格vs功能)。对于一个想要拥有灵活许可(浮动许可)的小公司来说,这是一个完美的选择——当时ANTS是开发人员座位挂坠盒。
此外,它为我们提供了附加到正在运行的进程的能力,这在dotTrace中是不可能实现的。注意,虽然附加不是最好的选择,因为所有的。net程序都会变慢,但这是分析由其他进程启动的。net应用程序的唯一方法。 在功能方面,ANTS和dotTrace更好——但最终YourKit已经足够好了。
推荐文章
- 实体框架核心:在上一个操作完成之前,在此上下文中开始的第二个操作
- 如何为构造函数定制Visual Studio的私有字段生成快捷方式?
- 为什么Visual Studio 2015/2017/2019测试运行器没有发现我的xUnit v2测试
- 如何使用JSON确保字符串是有效的JSON。网
- AppSettings从.config文件中获取值
- 通过HttpClient向REST API发布一个空体
- 如何检查IEnumerable是否为空或空?
- 自动化invokerrequired代码模式
- 没有ListBox。SelectionMode="None",是否有其他方法禁用列表框中的选择?
- 在c#代码中设置WPF文本框的背景颜色
- 在c#中,什么是单子?
- c#和Java中的泛型有什么不同?和模板在c++ ?
- c#线程安全快速(est)计数器
- 如何将此foreach代码转换为Parallel.ForEach?
- 如何在iis7应用程序池中设置。net Framework 4.5版本