clock() — プロセッサー時間の判別

フォーマット

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

言語レベル

ANSI

スレッド・セーフ

はい

説明

clock() 関数は、プログラムが使用したプロセッサー時間の概算を戻します。プロセス呼び出しに関連した、実装定義の時間枠の開始以降の経過時間です。 秒単位の時間を取得するには、clock() で戻された値をマクロ CLOCKS_PER_SEC の値で割ります。

戻り値

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

プログラムで使用された時間を測るには、プログラムの先頭で clock() を呼び出し、その戻り値を、その後の clock() の呼び出しで戻った値から減算してください。他のプラットフォームでは、clock() 関数をいつも信頼することはできません。system() 関数の呼び出しがクロックをリセットする可能性があるからです。

次の例は、プログラムが呼び出されてから経過した時間を出力します。
#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);
}