DateTime.Now は関数のパフォーマンスを測定する最良の方法ですか? [closed] 質問する

DateTime.Now は関数のパフォーマンスを測定する最良の方法ですか? [closed] 質問する

ボトルネックを見つけて、できるだけ正確に時間を測定する必要があります。

次のコード スニペットはパフォーマンスを測定する最良の方法でしょうか?

DateTime startTime = DateTime.Now;

// Some execution process

DateTime endTime = DateTime.Now;
TimeSpan totalTimeTaken = endTime.Subtract(startTime);

ベストアンサー1

いいえ、違います。ストップウォッチ(でSystem.Diagnostics

Stopwatch sw = Stopwatch.StartNew();
PerformWork();
sw.Stop();

Console.WriteLine("Time taken: {0}ms", sw.Elapsed.TotalMilliseconds);

ストップウォッチは、高精度タイマーの存在を自動的にチェックします。

タイムゾーンに関する作業のため、DateTime.Now通常よりもかなり遅くなることが多いことに注意が必要です。DateTime.UtcNow夏時間など。

DateTime.UtcNowの解像度は通常15ミリ秒です。ジョン・チャップマンのブログ投稿DateTime.Now優れた要約のための精度について。

興味深いトリビア:ハードウェアが高周波数カウンターをサポートしていない場合、ストップウォッチはフォールバックしますDateTime.UtcNow。ストップウォッチがハードウェアを使用して高精度を実現しているかどうかは、静的フィールドを見ることで確認できます。ストップウォッチ.高解像度

おすすめ記事