QueryPerformanceCounter() をループして、値を保存します。
// Main loop for timer test
for ( int i = 0; i < ITERATIONS; i++ ) // ITERATIONS = 1000
{
QueryPerformanceCounter(&li);
time[i] = double(li.QuadPart) / PCFreq; //1,193,182 per second
}
//calculate the difference between each call
// and save in difference[]
for ( int j = 0; j < (ITERATIONS - 1) ; j++ )
{
difference[j] = time[j+1] - time[j];
}
(PCFreq で割ると、各呼び出し間の時間が得られます。)
高分解能タイマー/カウンターは、デフォルトの周波数 1000 を返さないため、おそらく機能しています。
各タイム スタンプ間の平均 11.990884 マイクロ秒 (1000 タイム スタンプ呼び出し)。
これは非常に遅いようです。
このテストは欠陥がありますか?
または、1.1Ghz Celeron でこのように遅い値を報告する理由についてのアイデアはありますか?