わんくまライブラリ Wankuma.Interop.InteropQueryPerformanceCounterクラス Version1
この文書はVisual Studio 2003(.NET1.1)をベースに記述されています。それ以降のバージョンや、あなたが読んでいる時点では変更されている可能性があります。
またバージョンアップされている場合にはなんらかかの不具合を含んでいる可能性があります。
新バージョンへ
Wankuma.Interop.InteropQueryPerformanceCounter2d.htm
ソースファイルへ
Wankuma.Interop.InteropQueryPerformanceCounter1s.htm
ソースファイル直接ダウンロードへ
Wankuma.Interop.InteropQueryPerformanceCounter1c.txt
利用規約へ
../kiyaku.htm
クラスの説明
Windows APIの世界でもっとも細かい単位で(分解能という)時間を計測するにはQueryPerformanceCounterを使います。
[HOW TO] Visual C# .NET で、QueryPerformanceCounter
を使用してコードの時間を計測する方法
http://support.microsoft.com/kb/306979/ja
[HOW TO] Visual Basic .NET で QueryPerformanceCounter
を使用してコードの時間を計測する方法
http://support.microsoft.com/kb/306978/ja
ただしこのKBのままでは使いにくいですので、ラップしました。
メソッドの説明
public void Start()
計測を開始します
public void End()
計測を終了します
プロパティの説明
public long Frequency
分解能を取得します。
public double Result
計測結果を返します
テストコード
C#
Wankuma.Interop.InteropQueryPerformanceCounter iqpc = new Wankuma.Interop.InteropQueryPerformanceCounter(); iqpc.Start(); //計測を開始します System.Threading.Thread.Sleep(1000); //時間のかかる処理をします iqpc.End(); //計測を終了します double Result = iqpc.Result; System.Diagnostics.Debug.WriteLine(Result);
VB
Dim iqpc As Wankuma.Interop.InteropQueryPerformanceCounter = New Wankuma.Interop.InteropQueryPerformanceCounter iqpc.Start() '計測を開始します System.Threading.Thread.Sleep(1000) '時間のかかる処理をします iqpc.End() '計測を終了します Dim Result As Double = iqpc.Result System.Diagnostics.Debug.WriteLine(Result)
結果
0.999437143266322