実行時間を計測する方法は各種存在していますが、例題では 4 種類の方法により計測しています。 clock/getrusage では、呼び出したプロセスの CPU 時間やリソース使用量が利用されるため、sleep/usleep 関数により CPU の利用を停止すると、その間の経過時間は計測されないので注意が必要です。 比較的長い時間の処理で、かつ I/O 等も含めたプログラム全体の処理を測定するには、時刻から経過時間を計測する gettimeofday を用いる方法が無難な方法になります。 times はシステムが起動した時間からのクロック数を返すため、gettimeofday と同様プログラムが CPU を利用しない間も、システム側が利用しているクロックを取得し、経過時間を取得することができます。 プログラム中の一部の処理において CPU 時間を測る場合、短い時間測定には getrusag