BLOGブログ

  • このエントリーをはてなブックマークに追加

.NET でプログラムの処理時間をストップウォッチで測る(Stopwatch クラス)

プログラムでの処理時間計測

開発をしていると処理時間が計測したくなることがまれにあります。
そんな時、デバック用のコードとして、下記のようなロジックを埋め込んで計測する思います。

  1. 処理の開始時に、現在時刻を取得。
  2. 処理の終了時に、再度現在時刻を取得。
  3. 上記2つの時刻の差分を算出して処理時間とする。

処理時間を取得したい箇所が複数あったら、
自分でユーティリティクラスなどを作ったりして簡単に利用可能にます。

.NET では、処理時間計測用に、Stopwatch クラス というものがあります。
本物のストップウォッチのようにスタート、ストップという
命令で操作できとてもわかり易い クラスです。
サンプル含めて解説します。

Stopwatch クラスの使い方

まず、Stopwatch を new します。
その後に、Start()メソッドを呼びます。Start()メソッド呼び出しから時間の計測が始まります。
計測を終えたい箇所で Stop()メソッドを呼びます。
Elapsedプロパティの値に計測値が入っているので、それをコンソールやデバッグ出力に出力するだけです。

また、Stopwatch クラスには気の利いた少し便利なメソッドが用意されています。

  • クラスの new とStart()メソッドの呼び出しを一度に行う、StartNew()メソッド
  • 経過時間を初期化する Reset()メソッド
  • 経過時間を初期化して再スタートする Restart()メソッド

.NET C# 以外の言語では

Ruby と Javascript でも同様の記述ができる命令があります。
RubyではBenchmarkモジュールで、Javascriptではconsole.time()とconsole.timeEnd() メソッドです。

あとがき

経験の浅い言語のプログラミングでは、ついつい自前のデバッグ用ユーティリティーを組んでしまいがちですよね。
そうする前に、便利なユーティリティーが用意されていないか探してみましょう。
ではでは。

ランキング

最近の投稿

アーカイブ

カテゴリー

RSS