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
私のマシンに戻ります。