http://naka.wankuma.com/site/library/dotnet1.1/Wankuma.Interop.InteropQueryPerformanceCounter1d.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