What is the best way to measure execution time of a function?
本问题已经有最佳答案,请猛点这里访问。
很明显我能做到,而且
谢谢你的小费。
System.Environment.TickCount和System.Diagnostics.StopWatch类对于更高的分辨率和更简单的使用来说都是很好的选择。
参见:
- 是datetime。现在是衡量函数性能的最佳方法吗?
- .NET中的高分辨率计时器
- environment.tickcount与datetime.now
- 在Windows中测试程序的最佳方法是什么?
我绝对建议你看一下
当我四处寻找更多关于秒表的信息时,我发现了这个网站;
当心秒表
有人提到了另一种可能性
Process.TotalProcessorTime
使用剖析器
尽管如此,你的方法仍然有效,但如果你正在寻找更复杂的方法。我建议使用C分析器。
它们的优点是:
- 你甚至可以得到一个语句级别解体
- 代码库中不需要更改
- 仪器的开销通常非常小,因此可以获得非常精确的结果。
还有许多可用的开源软件。
滴答数很好,不过我建议运行100或1000次,然后计算平均值。不仅使其更具可测量性——在真正快速/短函数的情况下,而且有助于处理由开销引起的某些一次性影响。