ホームページ > バックエンド開発 > C++ > Linux でミリ秒精度の時間測定を実現するにはどうすればよいですか?

Linux でミリ秒精度の時間測定を実現するにはどうすればよいですか?

DDD
リリース: 2024-11-13 10:58:02
オリジナル
919 人が閲覧しました

How to Achieve Millisecond Precision Time Measurement in Linux?

Linux でミリ秒精度の時間測定値を取得する

C で時間測定値を操作する場合、クロック() 関数は、取得するための便利なメソッドを提供します。 Windows システム上のミリ秒単位の現在時刻。ただし、Linux では、クロック() は時間を最も近い秒に四捨五入して、精度の低い結果を提供することがあります。

この場合、解決策は標準の sys/time.h ヘッダーと関数を利用することです。 gettimeofday() 関数は、現在の時刻を timeval 構造体として返します。これには、エポックからの秒とマイクロ秒の両方が含まれます。終了時刻から開始時刻を減算し、マイクロ秒をミリ秒に変換すると、ミリ秒精度の時間測定値を取得できます。

ここに、gettimeofday() を使用してミリ秒精度の時間測定を実現する方法を示すコード スニペットの例を示します。

#include <sys/time.h>
#include <stdio.h>
#include <unistd.h>

int main()
{
    struct timeval start, end;
    long mtime, seconds, useconds;    

    gettimeofday(&start, NULL);
    usleep(2000); // Sleep for 2 milliseconds
    gettimeofday(&end, NULL);

    seconds  = end.tv_sec  - start.tv_sec;
    useconds = end.tv_usec - start.tv_usec;

    mtime = ((seconds) * 1000 + useconds/1000.0) + 0.5;

    printf("Elapsed time: %ld milliseconds\n", mtime);

    return 0;
}
ログイン後にコピー

この例では、gettimeofday() を使用して開始時刻と終了時刻の両方を取得します。秒とマイクロ秒の差が計算され、結果は最大 0.5 ミリ秒の精度でミリ秒に変換されます。

以上がLinux でミリ秒精度の時間測定を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート