Apa itu "waktu sistem" saat menggunakan "waktu" di baris perintah

10

Saya menggunakan timewaktu Perlskrip pada terminal standar di Ubuntu 14.04.

Saya telah membaca bahwa real timeini adalah waktu stopwatch; waktu saya, sebagai pengguna, menghabiskan waktu melihat program yang berjalan dari saya memulai program sampai berakhir. Tapi saya tidak mengerti apa userdan berapa syskali. Halaman manual di timekabur, untuk sedikitnya.

Meskipun agak jelas bahwa realwaktunya terbagi antara userdan systidak jelas apa yang mereka wakili.

Dalam skrip saya, saya membuat benchmark [1] C ++ dan Perl terhadap satu sama lain untuk melihat perbedaannya, dan saya ingin tahu data apa yang sebenarnya saya dapatkan. Contoh output adalah:

real    0m24.198s
user    0m23.120s
sys     0m1.030s

Bisakah seseorang tolong jelaskan apa format waktu default memberitahu pengguna? Saya seorang pemula di Linux, jadi tolong jangan menganggap terlalu banyak.

[1] Menariknya, sementara C ++ lebih cepat, lebih cepat daripada Perl dalam tolok ukur saya sehubungan dengan realwaktu, syswaktu tidak jauh berbeda, dengan C ++ sebenarnya menggunakan lebih banyak syswaktu daripada Perl. Inilah mengapa saya ingin tahu apa artinya

Alrekr
sumber

Jawaban:

15

Dari wikipedia :

  • Waktu Pengguna vs Waktu Sistem

Istilah 'waktu pengguna CPU' bisa agak menyesatkan pada awalnya. Agar jelas, total waktu CPU adalah kombinasi dari 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 sebuah 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 Nyata vs Waktu CPU

Istilah "waktu nyata" dalam konteks ini mengacu pada waktu "jam dinding" yang telah berlalu, seperti menggunakan stopwatch. Total waktu CPU (waktu pengguna + waktu sistem) mungkin lebih atau kurang dari nilai itu. Karena suatu program mungkin menghabiskan waktu menunggu dan tidak mengeksekusi sama sekali (baik dalam mode pengguna atau mode sistem) waktu nyata mungkin lebih besar dari total waktu CPU. Karena sebuah program mungkin memotong anak-anak yang waktu CPU-nya (baik pengguna maupun sistem) ditambahkan ke nilai-nilai yang dilaporkan oleh perintah waktu, total waktu CPU mungkin lebih besar daripada waktu sebenarnya.

Konstantinos
sumber
1
Saya tidak mengerti bagaimana saya berhasil tidak menemukan artikel Wikipedia itu. Terima kasih.
Alrekr