サブミリ秒の精度でタイミング演算を実行するC#のどこかにありますか?ソフトウェアにタイミングコードを入れていますが、すべてが0msとして返されます。さらに細かくする方法があるかどうか知りたいです。
補遺:これはサブミリ秒のタイミングを取得するための正しいコードですか?
timeSpan.TotalMilliseconds / 10
経過時間としてまだ0を取得しています
マネージドアプローチには、いつでもQueryPerformanceCounterまたはStopWatchクラスを使用してみることができます。
使用するSystem.Diagnostics.Stopwatch
通常、私はこれらの種類のシナリオを複数回(数十または数百のミリ秒を取得するために必要な回数)繰り返すことによって測定します。
そうすれば、より簡単に調整および測定できます。
ミリ秒ではなく、ティックの問題でパフォーマンスを測定してみることができます。パフォーマンスの点ではるかに正確になります。
しかし、私はサムとティラニッドに同意します。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
、パフォーマンスに遅延があるかどうかはわかりません。そのため、最初にそれを取得して変数に入れます。