サーチ…


構文

  • stopWatch.Start() - ストップウォッチを開始します。
  • stopWatch.Stop() - ストップウォッチを停止します。
  • stopWatch.Elapsed - 現在の間隔で測定された合計経過時間を取得します。

備考

ストップウォッチはベンチマークプログラムでよくタイムコードに使用され、異なるコードセグメントがどのくらい最適に実行されるかを確認します。

ストップウォッチのインスタンスの作成

ストップウオッチのインスタンスは、経過時間をいくつかの間隔で測定できます。合計経過時間は、すべての個別間隔が一緒に加算されます。これは、2つ以上の事象間の経過時間を測定する信頼できる方法を提供する。

Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();

double d = 0;
for (int i = 0; i < 1000 * 1000 * 1000; i++)
{
    d += 1;
}

stopWatch.Stop();
Console.WriteLine("Time elapsed: {0:hh\\:mm\\:ss\\.fffffff}", stopWatch.Elapsed);

StopwachSystem.Diagnosticsありますので、 System.Diagnosticsusing System.Diagnostics;して追加する必要がありusing System.Diagnostics;あなたのファイルに。

IsHighResolution

  • IsHighResolutionプロパティは、タイマーが高解像度のパフォーマンスカウンタに基づいているのか、DateTimeクラスに基づいているのかを示します。
  • このフィールドは読み取り専用です。
// Display the timer frequency and resolution.
if (Stopwatch.IsHighResolution)
{
    Console.WriteLine("Operations timed using the system's high-resolution performance counter.");
}
else 
{
    Console.WriteLine("Operations timed using the DateTime class.");
}

long frequency = Stopwatch.Frequency;
Console.WriteLine("  Timer frequency in ticks per second = {0}",
    frequency);
long nanosecPerTick = (1000L*1000L*1000L) / frequency;
Console.WriteLine("  Timer is accurate within {0} nanoseconds", 
    nanosecPerTick);
}

https://dotnetfiddle.net/ckrWUo

Stopwatchクラスで使用されるタイマーは、システムのハードウェアとオペレーティングシステムによって異なります。ストップウォッチタイマーが高解像度のパフォーマンスカウンタに基づいている場合、IsHighResolutionは真です。それ以外の場合、IsHighResolutionはfalseで、ストップウォッチタイマーはシステムタイマーに基づいています。

StopwatchのTicksはマシン/ OSに依存しているので、2台のシステム間でStopwatchティックの比率を秒単位で決して決して決して決してしないでください。したがって、ストップウォッチダニをDateTime / TimeSpanティックと同じ間隔にすることは決してありません。

システムに依存しない時間を取得するには、StopwatchのElapsedまたはElapsedMillisecondsプロパティーを使用してください。これは既にStopwatch.Frequency(秒単位のティック)を考慮しています。

ストップウォッチは、より軽量であるためタイミングプロセスには常にDatetimeを使用し、高解像度のパフォーマンスカウンタを使用できない場合はDateimeを使用します。

ソース



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow