はじめに
時間間隔を正確に測定することは、さまざまなアプリケーション、特に高速プロセスを扱う場合。この記事では、結果が秒単位でしか得られないため、C で Clock_t を使用して時間を測定する場合の一般的な問題について説明します。 Linux の場合は Clock_gettime() を、Windows の場合は QueryPerformanceCounter を使用して、ナノ秒の精度で時間測定値を取得する代替方法を検討します。
Linux の場合は Clock_gettime()
Linux システムの場合、 Clock_gettime() 関数は、より正確なタイマーを提供します。次のコード スニペットは、その使用法を示しています。
#include <sys/time.h> #include <iostream> int main() { timespec ts; clock_gettime(CLOCK_MONOTONIC, &ts); // CLOCK_REALTIME for real-world time std::cout << "Nanoseconds: " << ts.tv_nsec << "\n"; return 0; }
QueryPerformanceCounter for Windows
Windows では、QueryPerformanceCounter 関数を高精度のタイミングに使用できます。
#include <Windows.h> #include <iostream> int main() { LARGE_INTEGER start, end, frequency; QueryPerformanceFrequency(&frequency); QueryPerformanceCounter(&start); // Run some code you want to time QueryPerformanceCounter(&end); double timeInNanos = (double)(end.QuadPart - start.QuadPart) * 1000000000.0 / frequency.QuadPart; std::cout << "Nanoseconds: " << timeInNanos << "\n"; return 0; }
追加考慮事項
これらの方法を利用することで、開発者は C でナノ秒の精度で正確な時間測定値を取得でき、正確なベンチマークとタイミング重視のアプリケーションが可能になります。
以上がC でナノ秒精度のタイミングを実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。