|
第 |
Last Updated 2002/10/17 |
---------------------------------------------------------------------------
TCHAR szBuffer[128];
LARGE_INTEGER liPerfFreq = {0, 0};
LARGE_INTEGER liPerfCount = {0, 0};
if(QueryPerformanceCounter(&liPerfCount)) {
TCHAR szCounter[28]; //指数のためのスペースを含める
double dCounter = (double)liPerfCount.LowPart +
(double)liPerfCount.HighPart * (double)0xFFFFFFFFFFFFFFFF;
QueryPerformanceFrequency(&liPerfFreq);
wsprintf(szBuffer, "Count:%s,Resolution:%lu",
gcvt(dCounter, 20, (char *)szCounter), liPerfFreq.LowPart );
}
---------------------------------------------------------------------------
QueryPerformanceCounter()はシステム起動からの経過時間(msec)を符号なしの64double time; DoubleWord freq; QueryPerformanceFequency( &freq ); time = (double)1.0 / (double)freq.LowPart; time = time * 1000000.0とすればtimeにはマイクロ秒の値が取得できる.
もしProc()という関数の処理時間を測りたい場合 QueryPerformanceCounter( &liStart ); Proc(); QueryPerformanceCounter( &liFinish ); QueryPerformanceFequency( &freq ); time = (double)(liFinish.QuadPart - liStart.QuadPart) / (double)liFreq.QuadPart; // HighPart を無視するなら // time = (double)(liFinish.LowPart - liStart.LowPart) / (double)freq.LowPart; とすれば処理時間を取得できる.
感想要望などを下記メールアドレスまでお願いします.
前向きなメールがこれからを左右します.(^^)
DSSへメールを送る