[C#] 正確な処理時間の計測

仕事でC#上にてミリ秒単位での処理時間の比較を行うことがあり
その時にStopWatchClassを使ったため、以下にメモを残す

まず復習として・・・C言語(Win32API)で最も正確な処理時間は
QueryPerformanceCounter()やQueryPerformanceFrequency()によって計測する。
なお、ミリ秒単位での計測を望まない場合は、このAPIを使う必要は無いが
TimerControl等の精度が低いものによっては100msのIntervalでも誤差が生じるため
状況に応じて使い分ける必要がある。(一番精度の低いものはWM_TIMERで呼び出されるもの
参考URL : MSDN QueryPerformanceFrequency Function()

そして本題であるC#での正確な処理時間を行う場合は
System.Diagnostics内のStopWatch Classを用いる。
但し、.NET Framework 2.0以降である必要がある。
使い方としては、インスタンスを生成し、Start()とStop()でおk(笑
参考URL : MSDN Stopwatchクラス(System.Diagnostics)

簡単すぎる・・・C言語の時の苦労は何処へやら・・・
但し、相変わらずCPUの分解能のサポートは必要らしい。

出力はElapsedMillisecondsメンバ変数によって
ミリ秒単位での経過時間をlong型で取得出来るため、そのまま出力。

SampleCodeを続きに示す。
続き▽
| Programming::C# (WPF) | comments (0) |

  

  
PROFILE
GSX-R1000
  • Author : Gaku
  • Age : 22 [1987.03.10]
  • Bike : SUZUKI GSX-R1000 K1 [E-28:Canada]
  • Web!ke : MyGarage
COMMENTS
TRACBACK
SEARCH
CALENDAR
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30      
<<   11 - 2009   >>
LINKS
OTHERS
POWERED BY
POWERED BY
ぶろぐん

SKIN BY
ゲットネット...¥

SERVER BY
wish-star.sytes.net