代码之家  ›  专栏  ›  技术社区  ›  pauldoo

在.NET中精确测量已用的墙壁时钟时间

  •  5
  • pauldoo  · 技术社区  · 14 年前

    在.NET中准确测量已用的墙壁时钟时间最方便的方法是什么?如果可能的话,我正在寻找微秒精度的东西(10-6秒)。

    3 回复  |  直到 12 年前
        1
  •  7
  •   Jon Skeet    14 年前

    System.Diagnostics.Stopwatch 是你最好的选择。然而,精确的精度将取决于您使用的计算机上的硬件,即是否有高分辨率性能计数器可用。(你可以用 IsHighResolution 字段。)

    样品使用:

    Stopwatch sw = Stopwatch.StartNew();
    // Do stuff here
    sw.Stop();
    TimeSpan time = sw.Elapsed;
    

    请注意,如果使用 ElapsedTicks 属性,以 计时器 与中使用的刻度不同的刻度 DateTime TimeSpan . 这在以前就让我陷入困境了——这就是为什么我总是使用 ElapsedMilliseconds Elapsed 属性。

        2
  •  0
  •   Adriaan Stander    14 年前
        3
  •  0
  •   Community CDub    7 年前

    这是一个类,它提供了这种规模的等待,因为我最终假定这就是您需要做的。秒表@cpu时间可能会得到一个apc,你会错过你的结束时间。

    https://stackoverflow.com/questions/15725711/obtaining-microsecond-precision-using-net-without-platform-invoke

    为了更好的方式imho

    如果你找不到,告诉我!