【C言語】ナノ秒単位で実行・処理時間を計測する方法

この記事では、C言語でプログラムの実行時間をナノ秒単位で計測する方法を紹介します。

プログラムの実行時間を正確に計測することで、効率的なプログラムの作成や処理速度の改善に役立ちます。

具体的な手順やサンプルコードを通じて、初心者でも理解しやすいように解説します。

目次から探す

ナノ秒単位で計測する方法

C言語でプログラムの実行時間を計測する方法はいくつかありますが、ナノ秒単位で計測する方法を紹介します。

clock_gettime関数を使用する方法

まず、<time.h>ヘッダーファイルをインクルードします。

#include <time.h>

次に、clock_gettime関数を使用して現在の時間を取得します。

struct timespec start, end;
clock_gettime(CLOCK_MONOTONIC, &start);

プログラムの実行したい部分の前後で、clock_gettime関数を呼び出して時間を取得します。

// 実行したい処理
clock_gettime(CLOCK_MONOTONIC, &end);

最後に、取得した時間の差を計算して実行時間を求めます。

double elapsed_time = (end.tv_sec - start.tv_sec) + (end.tv_nsec - start.tv_nsec) / 1000000000.0;

tv_secは秒単位の時間を表し、tv_nsecはナノ秒単位の時間を表します。

計算結果を秒単位に変換するために、tv_nsecを10億で割っています。

実行例

以下は、ナノ秒単位で計測する方法の実行例です。

#include <stdio.h>
#include <time.h>
int main() {
    struct timespec start, end;
    clock_gettime(CLOCK_MONOTONIC, &start);
    // 実行したい処理
    for (int i = 0; i < 1000; i++) {
        printf("Hello, World!\n");
    }
    clock_gettime(CLOCK_MONOTONIC, &end);
    double elapsed_time = (end.tv_sec - start.tv_sec) + (end.tv_nsec - start.tv_nsec) / 1000000000.0;
    printf("実行時間: %lf秒\n", elapsed_time);
    return 0;
}

上記のプログラムでは、printf("Hello, World!\n");を1000回実行しています。

実行時間は、実行結果に表示されます。

以上が、C言語でナノ秒単位で計測する方法の説明です。

clock_gettime関数を使用して現在の時間を取得し、その差を計算することで実行時間を求めることができます。

目次から探す