ナノ秒精度の C のタイマー関数
C で API 関数の実行のタイミングを計る場合、組み込みの Clock() 関数最初に経過時間を秒単位で計算します。ナノ秒単位でより正確な測定値を取得するには、プラットフォーム固有の計時メカニズムを詳しく調べる必要があります。
Linux および BSD
Linux および BSD オペレーティング システムの場合は、 Clock_gettime()おすすめですメソッド:
#include <sys/time.h> int main() { timespec ts; // For Linux, use: clock_gettime(CLOCK_REALTIME, &ts); // For FreeBSD, use: clock_gettime(CLOCK_MONOTONIC, &ts); }
Windows
Windows は QueryPerformanceCounter 関数を提供します:
#include <windows.h> int main() { LARGE_INTEGER ts; QueryPerformanceCounter(&ts); }
精度と精度に関する考慮事項
その間QueryPerformanceCounter はより高い解像度を提供しますが、次のような制限があります。
Windows 7 以降のバージョンでは、不変条件でプロセッサを検出することでこれらの問題に対処しようとしています。 TSC (タイム スタンプ カウンター) と、必要に応じて外部タイマーを使用します。
追加リソース
さらに詳しい情報とトラブルシューティングについては、これらの追加リソースを参照してください。記事:
以上が異なるオペレーティング システム間で C でナノ秒精度のタイミングを実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。