Clock()はプロセスまたはシステム全体のクロックカウントを返しますか?

Clock()はプロセスまたはシステム全体のクロックカウントを返しますか?

コードセグメントが完了するのにかかる時間を計算しようとしています。しかし、プロセスを実行するのにかかる時間を決定するのではなく、すべての要素を考慮するのにかかる時間(プロセスが中断された場合など)も計算したいと思います。

これを行うにはClock()を使用しています。 Clock()クロックは合計時間を計算しますか、それとも実行時間を処理しますか?

答え1

あなたはそれについて言及していないので、特にLinuxについて質問しているとします。

からman 3 clock

返される値は使用されたCPU時間です。clock_tの場合、使用された秒を取得するにはCLOCKS_PER_SECで割ります。

言い換えれば、クロックはプロセッサ時間にのみ関連する。壁掛け時間が必要な場合は、次のことができます。

  • /proc/.../statawk -v RS=\) '{ print $20 }' /proc/.../stat開始後のプロセスの開始時間(クロックサイクル)を含む等価チェックの開始時間フィールドを使用します。その後、現在の稼働時間を比較して、プロセスが開始されてsysinfo()からどれくらいの時間が経過したかを計算できます(もちろん面倒なことで、稼働時間を時計に変換する必要がありますCLK_TCK)。または、
  • clock_gettimeと一緒に使用されますが、CLOCK_MONOTONICAPIはとは異なりますclock。まず、clock_gettime比較のために結果を使用して最初に結果を明示的に呼び出して保存する必要があります(使用方法によってはすでにこれを実行している可能性がありますclock)。また、再利用できますが、これがaではないことをtime_t認識する必要があります。clock_tCLK_TCK

関連情報