好的.NET4性能分析工具

4

什么是适用于.NET 4.0的好分析器?我愿意花一些钱,但不要太多(比如50英镑以内)。

我正在使用XNA为Windows Phone和Xbox开发游戏,这意味着这些项目是商业性质。我提到这一点是因为我看到有些分析器只适用于非商业用途。

如果能与Visual Studio集成则加分。

注意:我正在使用Visual Studio Professional 2010。


可能重复:https://dev59.com/FnVD5IYBdhLWcg3wXaYd - ckittel
这个问题当时(现在仍然如此)只适用于 .net4,而当时几乎没有免费/实惠的分析器。 - Martin
明白了,只是为了交叉引用的原因进行链接(方便其他人搜索,也为了你的利益,以防你没有看到它)。 - ckittel
哦,好吧,我以为这是为了关闭问题而付出的努力。谢谢提供链接 :) - Martin
5个回答

5
一个鲜为人知的免费分析工具是SharpDevelop Profiler

截图:

SharpDevelop
(来源:sharpdevelop.net)

它非常强大,支持极少文档化的PSQL(Profiler SQL)查询语句。例如,我可以通过在查询栏中输入以下内容来筛选出我感兴趣的所有函数:

for f in Functions where f.Name.Contains("Foo") select f

3
EQATEC Profiler可以对几乎所有的.NET平台进行分析,包括以下内容:
  • 完整的.NET 2.0及以上版本
  • Windows Phone 7,包括Silverlight和XNA应用程序
  • Silverlight 2.0及以上版本
  • NET CF 2.0及以上版本(WinCE,Windows Mobile)
  • XboxXNA(虽然缺少到Xbox设备的集成部署)
简而言之,它唯一不能分析的是 .NET 1.x(full/netcf)。世界上没有其他性能分析工具可以在如此多的.NET平台上运行。同时,它也很容易使用。

+1,基本版是免费的。可惜它不能进行行级别的分析。 - 500 - Internal Server Error

2

Visual Studio 2010内置了一个相当不错的性能分析器(仅适用于高级版和旗舰版)。

另一个很棒的性能分析器是dotTrace

我只列出我知道现在支持.Net 4.0的性能分析器,但请看一下这个关于.Net性能分析器的旧问题。也许其中一些最近也增加了对.Net 4.0的支持。无论如何,我认为现在没有任何新的性能分析器,因为这是一个非常复杂的主题。


@Maruricio:dotTrace现在支持.NET 4.0了吗? - John Saunders
很不幸,我无法获得 Visual Studio Pro 的免费副本,所以只能使用 Pro 版本。 - Martin
@John:是的,截至本文撰写时,dotTrace 4.0 beta(最新版本)支持 .Net 4.0。 - Mauricio Scheffer
不幸的是,£156 的 dotTrace 远远超出了我的预算范围。 - Martin
对于VS2010,分析器在Premium和Ultimate版本中(在VS2010中没有“Team”版本)。 - Chris Schmich
显示剩余2条评论

2

Slim Tune 是一个很棒的性能分析工具。


SlimTune目前不支持.net4。 - Martin
SlimTune现在支持.NET 4.0,已经有一段时间了。是一个相当不错的分析工具。 - jgallant

0

虽然这是可能的,但并不是很可行,你会浪费太多时间。 - Mauricio Scheffer
@Mauricio Scheffer:如果没有尝试过,这样的观点是可以理解的。根据我的经验(以及其他 Stack Overflow 上的人),它可以非常快速地发现问题,而人们仍在努力安装和运行分析器、弄清楚输出的含义并意识到它们并不总是能提供所需的信息。 - Mike Dunlavey
这是许多性能分析工具容易出现的神话清单,包括 VS 中的一个,如果我没记错的话:https://dev59.com/xHI-5IYBdhLWcg3wlpeW#1779343 - Mike Dunlavey
我不知道你为什么会对我有那种假设。我确实使用低技术/穷人的分析方法(事实上,我已经在博客中写过一个:http://bugsquash.blogspot.com/2009/08/poor-man-profiler-with-windsor.html),但我仍然认为在99%的情况下,一个好的分析器更好、更快,至少对于我迄今为止在我的短暂职业生涯中处理的那种代码来说是这样的。 - Mauricio Scheffer
@Mauricio Scheffer:抱歉 - 我知道Stack Overflow上的人只是想互相帮助。在我漫长的职业生涯中,我看到有人试用摩托车、大众汽车、玛莎拉蒂,而一个小船就能胜任工作(虽然可以给它安装发动机)。这是一种不同的观点 - 不是从顶层向下的时间测量和关注准确性的方法,而是从底层开始询问它在做什么以及为什么,仅基于粗略的百分比,查看代码行而不是函数,并且关注墙上挂钟时间而不是CPU时间,忽略递归等无关紧要的东西。 - Mike Dunlavey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接