我需要一个C#profiler.
虽然我不反对支付一个,但是免费或者至少试用版的东西是理想的,因为提交采购订单需要时间.
有什么建议?
一年半前,我在一个大型的c#项目中使用了Ants剖析器.它的成本确实非常出色,甚至超过了一些较为昂贵的竞争对手.
它几乎按行分辨率计算成本.
您可以尝试以下方法:
nprof(免费但有点老)
ProfileSharp(开源)
.Net Memory Profiler(非常适合内存泄漏,有试用版)
编辑:Nprof已被替换SlimTune与.NET 4.0的应用程序的工作原理
该EQATEC探查是非常好的,是完全免费的.它易于设置和使用,并且似乎不会给应用程序增加太多的开销.我刚刚开始使用它,并且已经发现了一些我不会发现的瓶颈.
来自JetBrains的dotTrace被广泛使用.
Patrick Smacchia非常棒的NDepend非常适合提供静态分析.
我在SharpToolbox.com上维护了一个完整的.NET分析器列表.
您可以在这里找到建议的工具以及更多,每个工具都简要描述了它的建议.
我在工作的地方使用Ants profiler.它以简单的方式提供非常详细的信息.
有趣的是,没有人提到Visual Studio的高端版本中有一个 - 我总是发现它足以执行性能分析.对于内存分析,我使用已经提到过的Memory Profiler,但不是我通常所说的"分析器".
你想做什么样的剖析?
我们使用.NET Memory Profiler.它有点丑,但对于找到悬空参考非常有用.
我最初尝试过Red Gate的ANTS分析器非常性感,但从内存泄漏的角度来看,它很糟糕,原因如下:
1)它的速度非常慢.将应用程序置于开始录制的状态需要半个小时(没有红门需要20秒).
2)Red Gate需要在自己的工具上运行自己的工具.当我完成两个快照时,它使用了900MB的内存!然后坠毁:(
然而,Red Gate ANTS的计时组件令人印象深刻.只是不要打扰内存分析器,除非你正在处理一个简单的(小占用空间)应用程序.