8

サブミリ秒の精度でタイミング演算を実行するC#のどこかにありますか?ソフトウェアにタイミングコードを入れていますが、すべてが0msとして返されます。さらに細かくする方法があるかどうか知りたいです。

補遺:これはサブミリ秒のタイミングを取得するための正しいコードですか?

timeSpan.TotalMilliseconds / 10

経過時間としてまだ0を取得しています

4

5 に答える 5

16

マネージドアプローチには、いつでもQueryPerformanceCounterまたはStopWatchクラスを使用してみることができます。

于 2010-02-08T21:54:21.983 に答える
11

使用するSystem.Diagnostics.Stopwatch

于 2010-02-08T21:54:57.463 に答える
3

通常、私はこれらの種類のシナリオを複数回(数十または数百のミリ秒を取得するために必要な回数)繰り返すことによって測定します。

そうすれば、より簡単に調整および測定できます。

于 2010-02-08T21:55:13.000 に答える
1

ミリ秒ではなく、ティックの問題でパフォーマンスを測定してみることができます。パフォーマンスの点ではるかに正確になります。

しかし、私はサムとティラニッドに同意します。System.Diagnostics.StopWatchを使用してください。

于 2010-02-08T22:04:08.937 に答える
1

私は何か新しいことを学びました。それらのダニは確かに便利です。完全な例:

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、パフォーマンスに遅延があるかどうかはわかりません。そのため、最初にそれを取得して変数に入れます。

于 2017-09-04T07:55:02.107 に答える