web-dev-qa-db-ja.com

実時間、ユーザー時間、CPU時間の違いは何ですか

GridEngineでコンピューティングジョブを実行しています。すべてのジョブは3つの異なる時間を返します。

  • 壁時計時間
  • ユーザー時間
  • CPU時間

これら3つの違いは何ですか?これら3つのうち2つは、2つのアプリケーション/スクリプトのパフォーマンスを比較するのに最も適しています。

14
Peter Smit

実時間は、ジョブの実行にかかる実際の時間です。これは、ストップウォッチを使用してジョブのタイミングを計るのと同じであり、タスクを完了するための測定時間は、システムがたまたま実行している他の何かによって影響を受ける可能性があります。

ユーザー時間は、CPUが実行に費やした時間yourコードを測定します。これは、実行されている可能性のある他のものはカウントしません。また、カーネルで費やされたCPU時間(ファイルI/Oなど)もカウントしません。

CPU時間は、CPUがコードまたはコードによって要求されたものの実行に費やした合計時間を測定します。これにはカーネル時間が含まれます。

「ユーザー時間」測定は、システムで発生している他の事柄による影響が最も少ないため、異なるジョブのパフォーマンスを測定するのにおそらく最も適しています。

18
Greg Hewgill

ウィキペディアから:

「ユーザーCPU時間」という用語は、最初は少し誤解を招く可能性があります。合計時間(実際のCPU時間)を明確にするために、CPUがプログラムのアクションの実行に費やす時間と、プログラムに代わってカーネルのシステムコールの実行にCPUが費やす時間の組み合わせです。プログラムが配列をループする場合、ユーザーのCPU時間を累積します。逆に、プログラムがexecやforkなどのシステムコールを実行すると、システムのCPU時間を累積します。

実時間は、コンピュータがタスクを完了するために費やした実際の時間です。これは、CPU時間、I/O時間、および通信チャネルの遅​​延(データが複数のマシンに分散している場合など)の3つの用語の合計です。プロセッサーが特定のタスクでアクティブに作業している時間のみを測定するCPU時間とは対照的に、ウォールタイムはプロセスが完了するまでの合計時間を測定します。 2つの違いは、プログラムされた遅延またはリソースが使用可能になるのを待っているために経過する時間で構成されます。

3
Maxwell