ANSI C を使用して時間をミリ秒単位で測定するにはどうすればよいでしょうか? 質問する

ANSI C を使用して時間をミリ秒単位で測定するにはどうすればよいでしょうか? 質問する

ANSI C のみを使用して、ミリ秒以上の精度で時間を測定する方法はありますか? time.h を参照しましたが、秒精度の関数しか見つかりませんでした。

ベストアンサー1

1秒以上の時間分解能を提供するANSI C関数はありませんが、POSIX関数はgettimeofdayマイクロ秒単位の精度を提供します。クロック関数はプロセスの実行に費やされた時間を測定するだけであり、多くのシステムでは正確ではありません。

この関数は次のように使用できます。

struct timeval tval_before, tval_after, tval_result;

gettimeofday(&tval_before, NULL);

// Some code you want to time, for example:
sleep(1);

gettimeofday(&tval_after, NULL);

timersub(&tval_after, &tval_before, &tval_result);

printf("Time elapsed: %ld.%06ld\n", (long int)tval_result.tv_sec, (long int)tval_result.tv_usec);

これはTime elapsed: 1.000870私のマシンに戻ります。

おすすめ記事