用于性能测试的秒表

Mar*_*tus 4 c# stopwatch performance-testing

对于我Stopwatch用于性能测量的一些私人项目.

但是在我想测量的低重复数量的呼叫计数中,我最终得到0 ElapsedMilliseconds,这使得计算平均值变得困难.

我想过写自己的秒表课程.这可能与蜱计算,并给予一个模糊的ElapsedMicroseconds基础上Stopwatch.ElapsedTicksTimeSpan.TicksPerMillisecond.这可能不是一个很好的方法.

我肯定需要一些由winapi的高性能计数器支持的东西,所以datetime等等是不够的.

还有其他想法吗?

Dmi*_*nko 6

如果得到0 ElapsedMicroseconds,则表示间隔小于1 ms.您可以尝试在Ticks中测量周期并使用频率:

  Stopwatch watch = Stopwatch.StartNew();
  ...
  // Estimated code here 
  ...
  watch.Stop();

  // Microseconds
  int microSeconds = (int)(watch.ElapsedTicks * 1.0e6 / Stopwatch.Frequency + 0.4999);
  // Nanoseconds (estimation)
  int nanoSeconds = (int)(watch.ElapsedTicks * 1.0e9 / Stopwatch.Frequency + 0.4999);
Run Code Online (Sandbox Code Playgroud)