Stopwatchクラスで、時間を測定する方法(C#)

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

スポンサーリンク

※サイト運営にサーバーは必須です※
~このサイトもエックスサーバーを使用しています~

はじめに

C#において、時間を測定する方法はいくつか考えられます。

例えば、System.DateTime.Nowを使用して、処理が始まった時と処理が終わった時の時刻の差を引き算して求めるなど考えられます。

しかし、この方法は精度がよろしくありません。

他にもいくつかの手法が考えられますが、Stopwatchクラスを使用するのが手軽で、かつ精度がある方法でしょう。

Stopwatchクラスを使えば、その名の通り、ストップウォッチの動きに相当するプログラムを簡単に作成できます。

その他の用途として、自分の作ったアルゴリズムのスピードを調べる時などに使います。

※アルゴリズムのスピードを調べる際は、自分のパソコンの裏で動いているアプリケーションを可能な限り止めないと、結果がばらつきます。結果がぶれる場合は、何度か測定して平均を取らないと、信頼に値する結果は得られません。

Stopwatchクラス

Stopwatchクラスには、時間を測定するにあたって、便利なメソッド・プロパティ・フィールドが用意されています。

よく使われると思われるメソッドは以下の表にまとめました。

メソッド 意味
Reset タイマー停止して、経過時間を0にリセット
Restart 経過時間を0にリセットしてタイマー開始
Start タイマー開始(再開)
Stop タイマー停止
フィールド  
Frequency 1 秒あたりのタイマー刻みの数(精度確認用)
プロパティ  
Elapsed 経過時間の合計

ソースコード

実行結果

経過時間は00:00:00.1003257
経過時間は00:00:00.2013570
経過時間は00:00:00.2014848
経過時間は00:00:00.3024996
経過時間は00:00:00
経過時間は00:00:00
経過時間は00:00:00.1005686
経過時間は00:00:00.0000007
経過時間は00:00:00.1008119
経過時間は00:00:00.2012111
1 秒あたりのタイマー刻みの数は2597639

あらかじめ、

using System.Diagnostics;

を最初に追加しておくと

Stopwatch st=new System.Diagnostics.Stopwatch();

と長々と書く必要がなく、以下のように省略して書くことができます。

Stopwatch st=new Stopwatch();

関連記事

~プログラミングを勉強してみませんか?~

TechAcademy [テックアカデミー] 無料の体験講座が用意されているので、気軽に体験できます。

※私(サイト主)も無料体験講座を実際に受けてみました(→感想)

     

コメントを残す

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)