ホームページ >バックエンド開発 >C++ >QueryPerformanceCounter はタイマーの精度をどのように向上させることができ、またその使用方法は何ですか?

QueryPerformanceCounter はタイマーの精度をどのように向上させることができ、またその使用方法は何ですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-15 04:24:091104ブラウズ

How Can QueryPerformanceCounter Improve Timer Accuracy and How Is It Used?

QueryPerformanceCounter とは何か、その使用方法

Timer クラスのタイミング精度を向上させるには、QueryPerformanceCounter が特に信頼できるオプションになります。マイクロ秒を求める場合

QueryPerformanceCounter の実装

QueryPerformanceCounter を利用するには、次の手順に従います。

  1. 初期化PCFreq:

    • QueryPerformanceFrequency(&li) を使用してパフォーマンス カウンターの周波数を決定します。
    • 結果を 2 倍に変換し、1000 で除算して周波数を取得します。マイクロ秒。
LARGE_INTEGER li;
if (!QueryPerformanceFrequency(&li))
    cout <ol start="2"><li>
<p><strong>カウンターを開始します</strong>:</p>
<ul>
<li>次を使用して初期カウントを記録しますQueryPerformanceCounter(&li).</li>
<li>このカウントを CounterStart 変数に保存します。</li>
</ul>
</li></ol><pre class="brush:php;toolbar:false">QueryPerformanceCounter(&li);
CounterStart = li.QuadPart;
  1. Get Time Elapsed:

    • QueryPerformanceCounter(&li) を呼び出して現在のカウントを取得します。
    • 現在のカウントから開始カウントを減算し、結果を次の値で割ることにより経過時間を計算します。 PCFreq.
double GetCounter()
{
    QueryPerformanceCounter(&li);
    return double(li.QuadPart - CounterStart) / PCFreq;
}
  1. 使用例:
StartCounter();
Sleep(1000);
cout <p>PCFreq の除算を調整する時間の単位を制御できる返された値:</p>
  • ミリ秒: /1000.0
  • 秒: /1.0
  • マイクロ秒: /1000000.0

以上がQueryPerformanceCounter はタイマーの精度をどのように向上させることができ、またその使用方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。