免费或廉价的C#asp.net分析/性能分析选项?

时间:2009-07-17 22:41:56

标签: c# asp.net performance profiler

我知道Redgate的Ants Profiler,我听说它很棒,但它也是400美元。那些更便宜的替代品至少会指出我可能需要优化我的代码的地方吗?

4 个答案:

答案 0 :(得分:7)

EQATEC Profiler是免费的。

我自己没试过,但听起来不错,他们网站上有一些积极的推荐。

我很想听听任何实际使用它的人的意见。

答案 1 :(得分:3)

Dottrace大约是蚂蚁价格的一半,而且非常好。由ReSharper的同一个人制作。

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

答案 2 :(得分:2)

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

答案 3 :(得分:2)

通常,我使用的方法是this

我对代码的计时时间并不是很感兴趣,因为我找到了大量不必要的时间,所以我可以清理它们并实现加速。

这是一个不同的过程。

补充:如果我可以详细说明,我看到的典型性能问题是某些活动(几乎总是一个函数调用)消耗了一些时间,比如10%,50%,90%,无论如何,它是不是真的有必要 - 可以用别的东西替换或者根本不用它来代替,并节省大量的时间。

假设为了说明它是50%。

我采用调用堆栈的随机时间样本,例如10,并且该调用有50%的几率出现​​在每个调用,因此它将在大约一半的样本上。因此它会吸引我的注意力,我会看看它的作用是否真的是必要的,如果没有,我会修复它以获得加速。

现在,那是衡量吗?如果是这样,测量结果非常差,因为样本数量很少。如果10个样本中有5个显示了这个电话,那么时间的一小部分可能是50%左右,给予或接受,而且肯定超过10%。所以我可能不知道精确度百分比,但我肯定知道它值得修复,我肯定知道问题的确切位置

(旁注:我没有计算通话次数,也没有估计通话时间。相反,我估算了通话费用,这就是它可以节省的费用,也就是它在堆栈上的停留时间。另请注意,我正在调用级别工作,而不是函数级别。我可能关心在感兴趣的调用之上和之下调用哪些函数,但除此之外,函数级问题,例如独占时间,调用图和递归,不起作用。)

这就是为什么我说测量性能,发现性能问题,虽然它们可能是互补的,但却是完全不同的任务。