CPU時間

または処理時間は、入出力の待機などの経過時間とは対照的に、中央処理装置（CPU）がコンピュータープログラムまたはオペレーティング・システムの命令の処理に使用された時間。これは、たとえば、入力/出力（I / O）操作の待機や低電力（アイドル）モードへの移行が含まれる。CPU時間は、クロックティックまたは秒で測定される。多くの場合、CPU時間をCPUの容量のパーセンテージとして測定すると便利である。これは、CPU使用率と呼ばれる。CPU時間とCPU使用率には、主に2つの用途がある。
CPU時間は、2つの機能的に同一のアルゴリズムの全体的な経験的効率を定量化するために使用される。たとえば、ソートアルゴリズムは、ソートされていないリストを受け取り、ソートされたリストを返す。これは、指定された入力リストに基づいて決定論的なステップ数で行われる。ただし、バブルソートとマージソートは実行時の複雑さが異なるため、マージソートはより少ないステップで完了する傾向がある。どちらのアルゴリズムの動作についても知識がない場合、バブルソートのCPU時間が長くなると、特定の入力データに対してマージソートよりも効率が低下することがわかる。
このタイプの測定は、複雑さが簡単ではないようなアルゴリズムを比較する場合に特に役立つ。この場合、壁時間（実際の経過時間）は関係ない。コンピュータは、CPUの温度などの実際の変数や、プロセスの優先度などの他のオペレーティングシステム変数に応じて、プログラムの実行速度を遅くしたり速くしたりする場合がある。
CPU使用率は、プロセッサがコンピュータプログラム間でどのように共有されているかを定量化するために使用される。単一のプログラムによるCPU使用率が高い場合は、処理能力が非常に要求されているか、誤動作している可能性がある。たとえば、無限ループに入っている。 CPU時間により、単一のプログラムが必要とする処理能力を測定できるため、入力を待機して実行された時間や、他のプログラムを実行できるように一時停止された時間などの干渉が排除される。
対照的に、（または単に実時間、ウォールクロック時間）通常のクロックによって測定されるように終了するまでコンピュータプログラムの開始からの所要時間。経過リアルタイムには、I / O時間、マルチタスク遅延、およびプログラムによって発生する他のすべてのタイプの待機が含まれる。
サブディビジョン.
CPU時間またはCPU使用率は、スレッドごと、プロセスごと、またはシステム全体のいずれかで報告される。さらに、CPUが正確に何をしていたかに応じて、報告される値は次のように細分化できる。
CPU時間のUnixコマンド.
Unixコマンド codice_1.
Unixコマンドtopは、すべてのプロセスのCPU時間、優先度、経過リアルタイム、およびその他の情報を提供し、それをリアルタイムで更新する。
Unixコマンド codice_2.
Unixコマンドtimeは、UnixプロセスのCPU時間と経過リアルタイムを出力する。
% gcc nextPrimeNumber.c -o nextPrimeNumber
% time ./nextPrimeNumber 30000007
Prime number greater than 30000007 is 30000023
0.327u 0.010s 0:01.15 28.6% 0+0k 0+0io 0pf+0w
このプロセスには合計0.337秒のCPU時間がかかり、そのうち0.327秒がユーザースペースで費やされ、最後の0.010秒がプロセスに代わってカーネルモードで費やされた。は1.15秒。
以下は、上記の例で使用されたアプリケーション nextPrimeNumber のソースコード。
// nextPrimeNumber.c
int isPrimeNumber (unsigned long int n) {
 for (int i=2 ; i<=(n » 1) ; ++i)
 if (n % i == 0) return 0 ;
 return 1 ;
int main (int argc, char *argv[]) {
 unsigned long int argument = strtoul (argv[1], NULL, 10), n = argument ;
 while (!isPrimeNumber(++n)) ;
 printf ("Prime number greater than %lu is %lu\n", argument, n) ;
 return 0 ;