Apa perbedaan antara waktu jam dinding, waktu pengguna dan waktu cpu

14

Kami menjalankan pekerjaan komputasi dengan GridEngine. Setiap pekerjaan menghasilkan 3 waktu berbeda:

  • Jam dinding
  • Waktu pengguna
  • Waktu CPU

Apa perbedaan antara ketiganya? Manakah dari ketiganya yang paling cocok untuk membandingkan kinerja dua aplikasi / skrip

Peter Smit
sumber

Jawaban:

18

Waktu jam dinding adalah jumlah aktual waktu yang diperlukan untuk melakukan suatu pekerjaan. Ini sama dengan mengatur waktu pekerjaan Anda dengan stopwatch dan waktu yang diukur untuk menyelesaikan tugas Anda dapat dipengaruhi oleh hal lain yang dilakukan sistem pada saat itu.

Waktu pengguna mengukur jumlah waktu yang dihabiskan CPU untuk menjalankan kode Anda . Ini tidak menghitung hal lain yang mungkin berjalan, dan juga tidak menghitung waktu CPU yang dihabiskan di kernel (seperti untuk file I / O).

Waktu CPU mengukur jumlah total waktu yang dihabiskan CPU untuk menjalankan kode Anda atau apa pun yang diminta oleh kode Anda. Ini termasuk waktu kernel.

Pengukuran "Waktu pengguna" mungkin yang paling tepat untuk mengukur kinerja berbagai pekerjaan, karena akan paling sedikit dipengaruhi oleh hal-hal lain yang terjadi pada sistem.

Greg Hewgill
sumber
3

Dari Wikipedia:

Istilah 'waktu pengguna CPU' bisa agak menyesatkan pada awalnya. Agar jelas waktu total (waktu CPU sebenarnya), adalah kombinasi jumlah waktu yang dihabiskan CPU untuk melakukan beberapa tindakan untuk suatu program dan jumlah waktu yang dihabiskan CPU untuk melakukan panggilan sistem untuk kernel atas nama program. Ketika suatu program loop melalui array, itu mengumpulkan waktu CPU pengguna. Sebaliknya, ketika sebuah program mengeksekusi panggilan sistem seperti exec atau fork, itu adalah akumulasi waktu CPU sistem

Waktu jam dinding adalah waktu yang sebenarnya diambil oleh komputer untuk menyelesaikan tugas. Ini adalah jumlah dari tiga istilah: waktu CPU, waktu I / O, dan penundaan saluran komunikasi (misalnya jika data tersebar di beberapa mesin). Berbeda dengan waktu CPU, yang hanya mengukur waktu selama prosesor bekerja secara aktif pada tugas tertentu, waktu dinding mengukur total waktu untuk menyelesaikan proses. Perbedaan antara keduanya terdiri dari waktu yang berlalu karena penundaan terprogram atau menunggu sumber daya tersedia.

Maxwell
sumber