C# 中是否有任何地方可以以亚毫秒精度执行计时操作?我将计时代码放入我的软件中,所有内容都返回为 0ms。我想知道是否有办法获得更精细的粒度。
附录:这是获得亚毫秒计时的正确代码吗?
timeSpan.TotalMilliseconds / 10
我仍然得到 0 作为经过的时间
您总是可以尝试使用QueryPerformanceCounter或StopWatch类作为托管方法
利用System.Diagnostics.Stopwatch
通常我通过多次重复操作来测量这些场景(根据需要多少毫秒来获得几十或几百毫秒。
然后您可以更轻松地进行调整和测量。
你可以尝试用 Ticks 而不是毫秒来衡量你的表现。它将在性能方面更加准确。
但我同意 Sam 和 Tyranid,使用 System.Diagnostics.StopWatch。
我学到了一些新东西。这些蜱虫确实很方便。完整示例:
Stopwatch stopwatch = Stopwatch.StartNew();
// Run code to get duration of
long durationInTicks = stopwatch.ElapsedTicks;
Console.WriteLine($"Duration: {(decimal)durationInTicks / TimeSpan.TicksPerMillisecond:f3}ms");
你也可以stopwatch.ElapsedTicks
在内部使用Console.WriteLine
,但我不知道这是否有任何性能延迟,这就是我首先检索它并将其放入变量中的原因。