clock () -プロセッサー時間の測定

形式

#include <time.h>
clock_t clock(void);

言語レベル

ANSI

スレッド・セーフ

はい

説明

clock() 関数は、プロセス呼び出しに関連したインプリメンテーション定義の時間枠の開始以降にプログラムによって使用されたプロセッサー時間の概算を戻します。 時間 (秒) を取得するには、 clock() によって返される値をマクロ CLOCKS_PER_SECの値で除算します。

戻り値

プロセッサー時間の値が使用できないか、表現できない場合、 clock() 関数は値 (clock_t) -1を戻します。

プログラムで費やされた時間を測定するには、プログラムの開始時に clock() を呼び出し、後続の clock()呼び出しによって戻される値からその戻り値を減算します。 他のプラットフォームでは、 system() 関数の呼び出しによってクロックがリセットされる可能性があるため、常に clock() 関数に依存できるとは限りません。

次の例は、プログラムが呼び出されてから経過した時間を出力します。
#include <time.h>
#include <stdio.h>
 
double time1, timedif;        /* use doubles to show small values */
 
int main(void)
{
    int  i;
 
    time1 = (double) clock();            /* get initial time */
    time1 = time1 / CLOCKS_PER_SEC;      /*    in seconds    */
 
    /* running the FOR loop 10000 times */
    for (i=0; i<10000; i++);
 
    /* call clock a second time */
    timedif = ( ((double) clock()) / CLOCKS_PER_SEC) - time1;
    printf("The elapsed time is %lf seconds\n", timedif);
}

関連情報