你在使用。net程序时使用过哪些分析器,你特别推荐哪一个?
当前回答
不幸的是,我尝试过的大多数分析器在与尾部调用一起使用时都失败了,尤其是ANTS。我只能自己写。CodeProject上有一个简单的实现,您可以将其用作基础。
其他回答
我还要补充一点,dotTrace区分内存和性能跟踪会话的能力绝对是无价的(ANTS可能也有内存差异特性,但我没有看到性能差异)。
能够在bug修复或增强之前和之后运行一个分析会话,然后比较结果是非常有价值的,特别是对于一个庞大的遗留的。net应用程序(就像我的情况),性能从来都不是优先考虑的,而且查找瓶颈可能非常乏味。执行前后差异可以查看每个方法的调用计数变化和每个方法的持续时间变化。
This is helpful not only during code changes, but also if you have an application that uses a different database, say, for each client/customer. If one customer complains of slowness, you can run a profiling session using their database and compare the results with a "fast" database to determine which operations are contributing to the slowness. Of course there are many database-side performance tools, but sometimes I really helps to see the performance metrics from the application side (since that's closer to what the user's actually seeing).
总结:dotTrace工作得很好,差异是无价的。
在过去,我使用Visual Studio Team System附带的分析器。
我最近发现了EQATEC Profiler http://www.eqatec.com/tools/profiler。它适用于大多数。net版本和许多平台。它易于使用,部分内容是免费的,即使用于商业用途也是如此。
(完全披露)
虽然还不像这里列出的其他一些。net内存分析器那样功能齐全,但市场上有一个新的入口叫做JustTrace。它是由Telerik制作的,它的主要目标是让所有类型的应用(web/Silverlight/桌面)的跟踪/分析更容易、更快。
如果您曾经发现使用其他工具分析和优化令人生畏或速度较慢,那么JustTrace可能值得一试。
最近我一直在测试Telerik的《JustTrace》,尽管它离成品还有一段距离,但他们正在朝着正确的方向前进。
推荐文章
- 实体框架核心:在上一个操作完成之前,在此上下文中开始的第二个操作
- 如何为构造函数定制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版本