Mar*_*tus 4 c# stopwatch performance-testing
对于我Stopwatch用于性能测量的一些私人项目.
但是在我想测量的低重复数量的呼叫计数中,我最终得到0 ElapsedMilliseconds,这使得计算平均值变得困难.
我想过写自己的秒表课程.这可能与蜱计算,并给予一个模糊的ElapsedMicroseconds基础上Stopwatch.ElapsedTicks和TimeSpan.TicksPerMillisecond.这可能不是一个很好的方法.
我肯定需要一些由winapi的高性能计数器支持的东西,所以datetime等等是不够的.
还有其他想法吗?
如果得到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)
| 归档时间: |
|
| 查看次数: |
2247 次 |
| 最近记录: |