QueryPerformanceCounter: タイミング精度のガイド
Timer クラスの精度を高めるために、QueryPerformanceCounter を選択しました。ただし、その実装はわかりにくい場合があります。
QueryPerformanceCounter の核心は、タイムスタンプをカウントで表す 64 ビット整数を格納する LARGE_INTEGER 構造体にあります。カウンタの周波数を決定するには、QueryPerformanceFrequency を使用し、その出力を 1 秒あたりのティック数を表す PCFreq に割り当てます。
次に、StartCounter は現在のタイムスタンプをキャプチャし、それを CounterStart に割り当てることでカウンタを初期化します。 GetCounter は現在のタイムスタンプを取得し、CounterStart からの経過時間を計算し、結果を PCFreq で除算して秒に変換します。
マイクロ秒の精度を得るには、PCFreq を 1000 分の 1 に減らします。あるいは、1000 による除算を削除して秒単位で測定します。
提供されたコードは、QueryPerformanceCounter の使用例を示しています。 StartCounter を呼び出すとタイマーが開始され、GetCounter は最後の呼び出しからの経過時間を返します。
このアプローチにより、正確なタイミングが得られ、ミリ秒間隔で大幅に改善されます。
以上がQueryPerformanceCounter はどのようにして C で正確なタイミングを実現できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。