关于c#:测量函数执行时间的最佳方法是什么?

What is the best way to measure execution time of a function?

本问题已经有最佳答案,请猛点这里访问。

很明显我能做到,而且DateTime.Now.After--DateTime.Now.Before,但是一定有更复杂的东西。

谢谢你的小费。


System.Environment.TickCount和System.Diagnostics.StopWatch类对于更高的分辨率和更简单的使用来说都是很好的选择。

参见:

  • 是datetime。现在是衡量函数性能的最佳方法吗?
  • .NET中的高分辨率计时器
  • environment.tickcount与datetime.now
  • 在Windows中测试程序的最佳方法是什么?

我绝对建议你看一下System.Diagnostics.Stopwatch

当我四处寻找更多关于秒表的信息时,我发现了这个网站;

当心秒表

有人提到了另一种可能性

Process.TotalProcessorTime


使用剖析器

尽管如此,你的方法仍然有效,但如果你正在寻找更复杂的方法。我建议使用C分析器。

它们的优点是:

  • 你甚至可以得到一个语句级别解体
  • 代码库中不需要更改
  • 仪器的开销通常非常小,因此可以获得非常精确的结果。

还有许多可用的开源软件。


滴答数很好,不过我建议运行100或1000次,然后计算平均值。不仅使其更具可测量性——在真正快速/短函数的情况下,而且有助于处理由开销引起的某些一次性影响。