在.NET中准确测量经过的墙钟时间

5

在.NET中,最方便准确地测量经过的墙钟时间的方法是什么?如果可能的话,我正在寻找具有微秒精度的方法(10^-6秒)。


2
经过的“挂钟时间”和经过的时间是否等同? - spender
@spender: 墙钟时间是完成任务所需的总时间。 - Dirk Vollmar
啊,好的,与 CPU 时间相反。现在明白了。 - spender
它源于使用挂在墙上的时钟来测量经过的时间的概念。它完全不关心 CPU 时间或机器内部发生的任何其他事情。 - pauldoo
3个回答

8
您可以使用System.Diagnostics.Stopwatch来计时。但是,精确度取决于您使用的计算机硬件,即高分辨率性能计数器是否可用(可以通过IsHighResolution字段进行检查)。以下是一个示例:
Stopwatch sw = Stopwatch.StartNew();
// Do stuff here
sw.Stop();
TimeSpan time = sw.Elapsed;

请注意,如果您使用的是 ElapsedTicks 属性,则该属性测量的是计时器滴答声,而不是 DateTimeTimeSpan 中使用的滴答声。这曾经让我困扰过 - 这就是为什么我总是使用 ElapsedMilliseconds 或者 Elapsed 属性。

这看起来很完美。在我的系统上,“频率”字段声称具有比十分之一微秒更好的分辨率。 - pauldoo

0

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接