11

私はそれを考えていました

  • Stopwatch.ElapsedTicksに等しい
  • Stopwatch.Elapsed.Ticks

しかし、そうではありません。後者は100ナノ秒の周期ですが、前者はと呼ばれる不思議な単位を使用していtimer ticksます。それらは何なのか、なぜ通常の測定単位と違うのかしら。

4

3 に答える 3

9

ドキュメントから:

ストップウォッチは、基礎となるタイマーメカニズムのタイマーティックをカウントすることで経過時間を測定します。インストールされているハードウェアとオペレーティングシステムが高解像度のパフォーマンスカウンターをサポートしている場合、Stopwatchクラスはそのカウンターを使用して経過時間を測定します。それ以外の場合、Stopwatchクラスはシステムタイマーを使用して経過時間を測定します。FrequencyフィールドとIsHighResolutionフィールドを使用して、ストップウォッチタイミング実装の精度と解像度を決定します。

はい、「ダニ」が過負荷になって2つの異なることを意味するのは苦痛です:(

これは基本的に、パフォーマンスカウンターのかなり「生の」ビューを提供しているためだと思います。これStopwatchは、「ティック」の意味についてさまざまな実装を持つことができます。

于 2011-04-26T17:05:49.473 に答える
5

Stopwatch.ElapsedTicks、1秒/の時間の長さであるストップウォッチの観点から「ダニ」を測定していStopwatch.Frequencyます。

内部的には、これはWindowsハイパフォーマンスカウンターサポートに基づいています(システムでサポートされている場合、ほとんどの場合当てはまります)。ネイティブ呼び出しはQueryPerformanceFrequencyであり、ハードウェアのサポートに応じて長さが異なります。

于 2011-04-26T17:06:08.640 に答える
0

たぶんそれはコンソール出力を見るのに役立ちます...

LinkedList 500挿入/削除操作ElapsedTicks:45871
LinkedList 500挿入/削除操作Elapsed.ticks:141266
LinkedList 500挿入/削除操作ミリ秒:14.1266
リスト500挿入/削除操作ElapsedTicks:1235121
リスト500挿入/削除操作Elapsed.ticks:3803744
リスト500挿入/削除操作ミリ秒:380.3744

(そこから経過したことが確認されます。ダニは100ナノ秒で測定されます)

于 2011-05-04T10:27:15.167 に答える