15
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

実行コストの低い経過時間計測

Posted at

参考

この記事は、以下の動画を参考にしています。
詳しくは、動画をご覧ください。

△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であり、ヒープも使用しない。

15
13
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?