【问题标题】:Free or inexpensive options for profiling / performance analysis for C# asp.net? [closed]用于 C# asp.net 的分析/性能分析的免费或廉价选项? [关闭]
【发布时间】:2009-07-17 22:41:56
【问题描述】:

我知道 Redgate 的 Ants Profiler,我听说它很棒,但也是 400 美元。是否有任何更便宜的替代方案至少可以指出我可能需要优化代码的地方?

【问题讨论】:

标签: c# asp.net performance profiler


【解决方案1】:

EQATEC Profiler 是免费的。

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

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

【讨论】:

  • 这很简单,但可以完成工作。而且它是免费的(供个人使用),非常棒。
  • 我很快放弃了 AMD 的 CodeAnalyst,因为我无法弄清楚如何分析“每种方法花费的总时间”。所以我厌倦了免费版的 EQATEC。它对我来说效果很好......在大约五分钟内告诉我我的问题出在哪里......包括注册、下载、安装、配置和运行我的第一个分析。 Ergo:它真的很容易使用。在谷歌之前,我们是如何完成任何事情的?
【解决方案2】:

Dottrace的价格大约是蚂蚁的一半,真的很不错。由做 ReSharper 的同一个人制作。

如果您只是想一次性优化您的代码,那么无论如何您都应该选择 Ants,因为它提供全功能的 15 天免费试用,应该足以进行大量优化完成。

【讨论】:

  • 我也使用 Dottrace,并且肯定会支持这个建议。
【解决方案3】:

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

【讨论】:

  • 如果我错了,请纠正我,但我相信这仅适用于 Visual Studio 的团队版。
  • 是的,你是对的。但是,CLR Profiler 是免费的。
【解决方案4】:

一般情况下,我使用的方法是this

我对代码的计时部分不太感兴趣,而是寻找大量不必要的耗时者,以便我可以清理它们并实现加速。

这真的是一个不同的过程。

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

假设为 50%。

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

现在,这是在测量吗?如果是这样,那确实是测量不佳,因为样本数量太少了。如果 10 个样本中有 5 个显示调用,则时间比例可能在 50% 左右,给予或接受,肯定超过 10%。所以我可能不知道精确的百分比,但我肯定知道它值得修复,而且我肯定知道问题出在哪里

(旁注:我没有计算调用次数,也没有估计调用持续时间。相反,我估计了调用的成本,即移除它会节省的成本,即它在堆栈上的驻留时间分数。另请注意,我在 call 级别工作,而不是 function 级别。我可能关心在感兴趣的调用之上和之下的函数调用,但除此之外,函数级问题,例如独占时间、调用图和递归,没有任何作用。)

这就是为什么我说衡量性能和发现性能问题虽然可能是互补的,但实际上是不同的任务。

【讨论】:

  • ... 啊,又一个匿名路过。但答案仍然有效。
猜你喜欢
  • 2011-04-19
  • 2010-09-08
  • 2011-06-18
  • 2010-09-15
  • 2011-05-27
  • 2011-08-06
  • 1970-01-01
  • 2010-09-09
相关资源
最近更新 更多