可能重复: 如何测量功能运行了多长时间?
我有一种I / O耗时方法,可将数据从一个位置复制到另一个位置。计算执行时间的最好,最真实的方法是什么?Thread?Timer?Stopwatch?还有其他解决方案吗?我想要最精确,最简短的一个。
Thread
Timer
Stopwatch
Stopwatch 是为此目的而设计的,并且是衡量.NET中时间执行情况的最佳方法之一。
var watch = System.Diagnostics.Stopwatch.StartNew(); // the code that you want to measure comes here watch.Stop(); var elapsedMs = watch.ElapsedMilliseconds;
不要 使用DateTime来衡量.NET中的时间执行。
更新:
正如@ series0ne在注释部分所指出的:如果要真正精确地测量某些代码的执行情况,则必须使用操作系统内置的性能计数器。在以下的答案必须包含一个很好的概述。