C言語入門講座。関数、サンプル集を参考にして、 C言語をマスターしよう。初心者から上級者まで。

CPU使用時間を取得する

2012.08.10

clock関数は、CPU使用時間の近似値を取得します。

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

引数はありません。

戻り値として、clock_t単位のCPU使用時間を返します。エラーの場合は、-1を返します。ただし、標準規格ではプログラムの開始時点では、どんな値が返ってきても構わないことになっていますので、移植性を確保するためには、プログラムの開始時にclock関数を呼び出してCPU使用時間を取得しておき、この値を差し引くことで、実際のCPU使用時間を求めた方がよいでしょう。

秒単位での使用時間はCLOCKS_PER_SECで割ることで算出できます。また、例えばCLOCKS_PER_SECが1000000である32ビットシステムでは、この関数は約72分毎に同じ値を返すことになります。

プログラム 例

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

int main()
{
  int         use_cpu;
  clock_t     first_time;

  /* CPU使用時間を取得 */
  first_time = clock();

  /* CPUを使う */
  for (use_cpu = 0; use_cpu < INT_MAX; ++use_cpu)
    ;

  printf('CPU使用時間:%.1f秒\n',
         (double)(clock() - first_time) / (double)CLOCKS_PER_SEC);

  return 0;
}

例の実行結果

$ ./clock.exe
CPU使用時間:4.9秒
$

関連記事