C言語でプログラムの実行時間を取得する方法

C言語では、time.hヘッダファイルのclock()関数を用いてプログラムの経過時間を取得できます。

まず、プログラムの冒頭でclock()関数を呼び出してその戻り値(プログラム開始時のタイムスタンプ)を変数に格納します。例:

#include <stdio.h>
#include <time.h>

int main() {
    clock_t start = clock();
    
    // 程序的其他代码
    
    clock_t end = clock();
    double time_taken = (double)(end - start) / CLOCKS_PER_SEC;
    
    printf("程序执行时间:%.2fs\n", time_taken);
    
    return 0;
}

最初にclock()関数を使ってプログラムを実行する直前のタイムスタンプを取得し、startという変数に保存します。プログラムが実行された後再びclock()関数を使ってタイムスタンプを取得し、endという変数に保存します。最後に、end – startでプログラムの実行にかかった時間を算出し、それに時間を秒に変換する演算を行ってtime_takenという変数に保存します。

最後に、printf 関数を使ってプログラムの実行時間をプリントアウトします。

clock()で取得する時間は、時計のティック数となるため、秒数に変換してプログラムの実行時間にする必要がある。CLOCKS_PER_SECは1秒間のティック数を表す定数で、時間差をCLOCKS_PER_SECで割れば秒数が得られる。

また、clock()関数はCPUクロック時間、つまりリアルタイムではなく、CPUのクロック時間を返します。リアルタイムを取得する場合はtime()関数やclock_gettime()関数などを利用する必要があります。

bannerAds