2009-07-17 45 views
8

我知道Redgate的蚂蚁分析器,我听说它很棒,但它也是400美元。任何更便宜的替代品,至少会指向我可能需要优化我的代码的位置?免费或廉价的C#asp.net分析/性能分析选项?

+0

查看http://stackoverflow.com/questions/911932/where-can-i-find-a-profiler-for-c-applications-to-be-used-in-visual-studio-2008进一步讨论/ options – 2009-07-18 18:24:08

回答

3

Dottrace是蚂蚁的价格的一半左右,这是真正的好。由做ReSharper的同样的人做。

如果你只是在寻找你的代码的一次性优化,那么你应该去蚂蚁无论如何,因为它有一个全功能的15天免费试用,这应该是足以让很多优化完成。

+0

我也使用Dottrace,肯定会推荐这个建议。 – 2009-07-18 18:22:28

2

VSProfiler附带VS,运行良好。 如果你正在看内存相关的问题,那么CLRProfiler将是你的选择。

+1

纠正我,如果我错了,但我相信这只适用于团队版的Visual Studio。 – womp 2009-07-18 20:03:30

+0

是的,你是对的。 但是,CLR Profiler是免费的。 – mfawzymkh 2009-07-19 03:28:18

2

一般来说,我使用的方法是this

我不是那么计时的代码片段作为在寻找大的不必要的时间,考生这样我就可以清理出来并实现加速太大的兴趣。

这实际上是一个不同的过程。

ADDED:如果我能详细说明,我看到的典型性能问题是某些活动(几乎总是一个函数调用)正在耗费一些时间,比如10%,50%,90%等等。并不是真的有必要 - 它可以用其他的东西替代或者根本不用,这样可以节省时间。

假设说明它是50%。

予取的调用堆栈的随机时间样本,10为示例,并且呼叫已出现在每一个的50%的机会,所以这将是在大约一半的样品。因此它会吸引我的注意力,我会看看它是否真的有必要,如果不是,我会修复它以加快速度。

现在,那是测量?如果是这样,那么测量的确很差,因为样品数量太少。如果10个样本中有5个显示该调用,那么时间的一小部分可能大概是50%左右,不管怎样,这个比例肯定超过10%。所以我可能不知道百分比的精确度,但我知道肯定值得修复,而我肯定知道问题的确切位置是。 (注意:我没有统计通话的次数,也没有估计通话时间,而是估计了通话费用,这是删除它可以节省的费用,也就是它在分组上的分数停留时间。还要注意,我在呼叫水平的工作,而不是功能水平。我可以不在乎什么函数调用的上方和感兴趣的召唤之下,但除此之外,功能层面的问题,比如独占时间,调用图形和递归,没有用武之地。)

这就是为什么我说衡量业绩,并发现性能问题,虽然他们可能是互补的,真的是不同的任务。

+0

......啊,另一个匿名驾驶。但答案仍然有效。 – 2009-08-14 11:54:52

7

EQATEC Profiler是免费的。

我自己并没有尝试过,但它听起来没问题,并且在他们的网站上有一些积极的推荐。

我很乐意听到任何实际使用过它的人的意见。