2009,08,20 Thursday
仕事で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を続きに示す。
続き▽
その時に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を続きに示す。
続き▽
TOP PAGE △






