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


当前回答

如果许可是一个问题,您可以尝试WINDBG进行内存分析

其他回答

我最近发现了EQATEC Profiler http://www.eqatec.com/tools/profiler。它适用于大多数。net版本和许多平台。它易于使用,部分内容是免费的,即使用于商业用途也是如此。

当前版本的SharpDevelop(3.1.1)有一个很好的集成分析器。它非常快,并且很好地集成到SharpDevelop IDE和它的NUnit运行器中。结果以灵活的树/列表样式显示(使用LINQ创建自己的选择)。双击显示的方法将直接跳转到源代码。

在过去,我使用Visual Studio Team System附带的分析器。

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

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

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

(完全披露)

虽然还不像这里列出的其他一些。net内存分析器那样功能齐全,但市场上有一个新的入口叫做JustTrace。它是由Telerik制作的,它的主要目标是让所有类型的应用(web/Silverlight/桌面)的跟踪/分析更容易、更快。

如果您曾经发现使用其他工具分析和优化令人生畏或速度较慢,那么JustTrace可能值得一试。