この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)
出典検索?: "CPU時間"
CPU時間(CPUじかん、英: CPU time)またはプロセス時間(英: process time)[注釈 1]は、CPU(中央処理装置)がコンピュータプログラムまたはオペレーティングシステムの命令の処理に使用された時間である。これは、入力/出力(I/O)操作の待機や低電力(アイドル)モードへの移行が含まれる経過時間(elapsed time)と対比される。CPU時間は、クロックティックまたは秒の単位で計測される。多くの場合、CPU時間をCPUキャパシティ(最大能力)のパーセンテージとして計測すると便利である。これは、CPU使用率(CPU usage)と呼ばれる。CPU時間とCPU使用率には、主に2つの用途がある。
CPU時間は、2つの機能的に同一のアルゴリズムの全体的な経験的効率を定量化するために使用される。たとえば、ソートアルゴリズムは、ソートされていないリストを受け取り、ソートされたリストを返す。これは、指定された入力リストに基づいて決定論的なステップ数で行われる。ただし、バブルソートとマージソートは実行時の複雑さが異なるため、マージソートはより少ないステップで完了する傾向がある。たとえどちらのアルゴリズムの動作についても知識がなかったとしても、バブルソートのCPU時間がより大きければ、特定の入力データに対してマージソートよりも効率が悪いということはわかる。
このタイプの計測は、複雑さが自明ではないようなアルゴリズムを比較する場合に特に役立つ。この場合、実測時間(実際の経過時間)[注釈 2]は関係ない。CPUの温度などの現実世界の変数や、プロセスの優先度などの他のオペレーティングシステム変数に応じて、コンピュータによるプログラムの実行速度は遅くなったり速くなったりすることがある。
CPU使用率は、プロセッサがコンピュータプログラム間でどのように共有されているかを定量化するために使用される。単一のプログラムによるCPU使用率が高い場合は、処理能力が非常に要求されているか、誤動作している可能性がある(たとえば無限ループに陥っているなど)。CPU時間により、単一のプログラムが必要とする処理能力を計測できるため、入力を待機して実行された時間や、他のプログラムを実行できるように一時停止された時間などの干渉が排除される。
対照的に、経過実時間(英語版)(または単に実時間、ウォールクロック時間)は、通常の時計によって計測されるような、コンピュータプログラムの開始から終了までの所要時間である。経過実時間には、I/O時間、マルチタスク遅延、およびプログラムによって発生する他のすべてのタイプの待機が含まれる。 CPU時間またはCPU使用率は、スレッドごと、プロセスごと、またはシステム全体のいずれかで報告される。さらに、CPUが正確に何をしていたかに応じて、報告される値は次のように細分化できる。 Unixコマンドtopは、すべてのプロセスのCPU時間、優先度、経過リアルタイム、およびその他の情報を提供し、それをリアルタイムで更新する。 Unixコマンドtimeは、UnixプロセスのCPU時間と経過リアルタイムを出力する。% gcc nextPrimeNumber.c -o nextPrimeNumber% time ./nextPrimeNumber 30000007Prime number greater than 30000007 is 300000230.327u 0.010s 0:01.15 28.6% 0+0k 0+0io 0pf+0w
区分
ユーザー時間は、CPUがユーザー空間でコードを実行するのに忙しかった時間を指す。
システム時間は、CPUがカーネル空間でコードを実行するのに忙しかった時間。この値がスレッドまたはプロセスについて報告されている場合は、たとえば、スレッドがシステムコールを発行した後など、実行中のコンテキストに代わってカーネルが作業を行っていた時間を表す。
アイドル時間(idle time、システム全体のみ)は、CPUがビジーでない時間、またはCPUがシステムアイドルプロセスを実行した時間。アイドル時間は、実際には未使用のCPUキャパシティを計測する。
スチール時間(steal time、システム全体のみ)は、仮想化ハードウェアでは、オペレーティングシステムが実行を望んでいたが、ハイパーバイザーによって実行が許可されなかった時間[3]。これは、物理ハードウェアが複数のゲストオペレーティングシステムを実行していて、ハイパーバイザーがCPUタイムスロットを別のタイムスロットに割り当てることを選択した場合に発生する可能性がある。
CPU時間のUnixコマンドUnixライクな( GNU / Linux )システムでのさまざまなプロセスのCPU時間のtopの表示。
Unixコマンド top
Unixコマンド time
Size:15 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)』
担当:undef