参考
この記事は、以下の動画を参考にしています。
詳しくは、動画をご覧ください。
△DateTime.UtcNow
// 開始時刻を得る
DateTime start = DateTime.UtcNow;
// 計測対象の処理
// 経過時間を得る
TimeSpan elapsed = DateTime.UtcNow - start;
DateTime.UtcNow
は、うるう秒の調整など、時刻を得るための処理を行っている。経過時間を知るには必要のない、余分な処理をしている。
△Stopwatch.Elapsed
// ストップウォッチを得る
Stopwatch sw = Stopwatch.StartNew();
// 計測対象の処理
// 経過時間を得る
TimeSpan elapsed = sw.Elapsed;
Stopwatch
はクラスなので、インスタンスを作るとヒープを使う。ヒープを使うとガベージコレクションの原因となる。
◎Stopwatch.GetTimestamp, GetElapsedTime
// タイムスタンプを得る
long start = Stopwatch.GetTimestamp();
// 計測対象の処理
// 経過時間を得る
TimeSpan elapsed = Stopwatch.GetElapsedTime(start);
Stopwatch.GetTimestamp
は、OSのAPIを呼び、タイムスタンプ(マシンの起動からの経過時間)を得る。タイムスタンプのデータ型はlong
であり、ヒープも使用しない。