|
.NET TIPS 処理時間を正確に計測するには?[2.0のみ、C#、VB]デジタルアドバンテージ 遠藤 孝信2006/02/17 |
![]() |
|
|
|
あるコードの実行にかかる時間をプログラムで計測したい場合、.NET Framework 1.1ではDateTime構造体(System名前空間)で開始/終了の時刻を取得して算出したり、より正確に計測したい場合にはWin32APIのQueryPerformanceCounter関数*などを直接呼び出したりする必要があった。
| * この関数を利用するには、ハードウェアが高分解能パフォーマンスカウンタをサポートしている必要がある。このため古いPCでは利用できない可能性もある。 |
.NET Framework 2.0のクラス・ライブラリには、このQueryPerformanceCounter関数をベースにしたStopwatchクラス(System.Diagnostics名前空間)が新しく追加されており、正確な経過時間を簡単に計測できるようになっている。
Stopwatchクラス
Stopwatchクラスで時間を計測するには、そのインスタンスを作成してStartメソッド、そしてStopメソッドを呼び出すだけだ(インスタンスの作成とStartメソッドの呼び出しをまとめて行う静的なStartNewメソッドも用意されている)。
その経過時間は、ElapsedMillisecondsプロパティ(ミリ秒単位)、Elapsedプロパティ(TimeSpan構造体の値)、もしくはElapsedTicksプロパティ(タイマ刻み回数)から得ることができる。
以下にStopwatchクラスを使用したサンプル・プログラムを示す。このプログラムでは、Threadクラス(System.Threading名前空間)のSleepメソッドにより1秒間だけスリープし、その実際の時間を計測してさまざまな形式で経過時間を出力する。
|
|
| Stopwatchクラスを使用したC#のサンプル・プログラム(stopwatch.cs) | |
|
|
| Stopwatchクラスを使用したVBのサンプル・プログラム(stopwatch.vb) | |
TimeSpan構造体(System名前空間)の扱いについては、「TIPS:秒数を「hh:mm:ss」形式の文字列にするには?」や「TIPS:日時や時間間隔の加減算を行うには?」を参考にしていただきたい。
ElapsedTicksプロパティによって得られる「タイマ刻み回数」とは、計測中にタイマがカウントした回数である。タイマが1秒間に何回カウントできるかは、Stopwatchクラスの静的プロパティであるFrequencyプロパティから取得できる。上記のサンプル・プログラムでは、ElapsedTicksプロパティの値を、Frequencyプロパティの値で割り算することにより、より正確な秒数を算出している。
なお、ハードウェアによりサポートされる高分解能パフォーマンスカウンタが利用可能かどうかはIsHighResolutionプロパティによりチェックできる。これが利用できない場合には、Stopwatchクラスは自動的にDateTime構造体の機能を利用して時間を計測する。![]()
| 利用可能バージョン:.NET Framework 2.0のみ カテゴリ:クラス・ライブラリ 処理対象:日付と時刻 使用ライブラリ:Stopwatchクラス(System.Diagnostics名前空間) 使用ライブラリ:TimeSpan構造体(System名前空間) 使用ライブラリ:DateTime構造体(System名前空間) 関連TIPS:秒数を「hh:mm:ss」形式の文字列にするには? 関連TIPS:日時や時間間隔の加減算を行うには? |
|
||||||||||||||||||||
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


