GNU/Linux >> Belajar Linux >  >> Linux

Temukan Waktu Eksekusi Perintah Atau Proses Di Linux

Anda mungkin mengetahui waktu mulai dari suatu perintah/proses dan berapa lama suatu proses berjalan di Linux dan sistem mirip Unix. Tapi, bagaimana Anda tahu kapan perintah atau proses berakhir dan/atau berapa total waktu yang dibutuhkan oleh perintah/proses untuk menyelesaikannya? Nah, itu mudah! Pada sistem mirip Unix, ada utilitas bernama 'GNU time' yang dirancang khusus untuk tujuan ini. Dengan menggunakan utilitas Time, kita dapat dengan mudah mengukur total waktu eksekusi suatu perintah atau program di sistem operasi Linux. Untunglah perintah 'time' sudah diinstal sebelumnya di sebagian besar distribusi Linux, jadi Anda tidak perlu repot dengan instalasi.

Menemukan waktu eksekusi perintah atau proses di Linux

Untuk mengukur waktu eksekusi suatu perintah/program, jalankan saja.

$ /usr/bin/time -p ls

Atau,

$ time ls

Contoh keluaran:

dir1 dir2 file1 file2 mcelog

real 0m0.007s
user 0m0.001s
sys 0m0.004s
$ time ls -a
. .bash_logout dir1 file2 mcelog .sudo_as_admin_successful
.. .bashrc dir2 .gnupg .profile .wget-hsts
.bash_history .cache file1 .local .stack

real 0m0.008s
user 0m0.001s
sys 0m0.005s

Perintah di atas menampilkan total waktu eksekusi 'ls ' memerintah. Ganti "ls " dengan perintah/proses apa pun pilihan Anda untuk menemukan total waktu eksekusi.

Di sini,

  1. real -merujuk total waktu yang dibutuhkan oleh perintah/program,
  2. user - mengacu pada waktu yang dibutuhkan oleh program dalam mode pengguna,
  3. sys - merujuk waktu yang dibutuhkan oleh program dalam mode kernel.

Kita juga bisa membatasi perintah untuk dijalankan hanya untuk waktu tertentu saja. Lihat panduan berikut untuk detail lebih lanjut.

  • Cara Menjalankan Perintah Untuk Waktu Tertentu Di Linux

waktu vs /usr/bin/time

Seperti yang mungkin Anda perhatikan, kami menggunakan dua perintah 'time' dan '/usr/bin/time ' dalam contoh-contoh di atas. Jadi, Anda mungkin bertanya-tanya apa perbedaan di antara keduanya.

Pertama, mari kita lihat apa sebenarnya 'time ' menggunakan 'type ' memerintah. Bagi yang belum tahu, Jenis Perintah ini digunakan untuk mengetahui informasi tentang perintah Linux. Untuk detail selengkapnya, lihat panduan ini .

$ type -a time
time is a shell keyword
time is /usr/bin/time

Seperti yang Anda lihat pada output di atas, waktu adalah keduanya,

  • Kata kunci yang ada di dalam shell BASH
  • File yang dapat dieksekusi yaitu /usr/bin/time

Karena kata kunci shell lebih diutamakan daripada file yang dapat dijalankan, saat Anda menjalankan waktu perintah tanpa path lengkap, Anda menjalankan perintah shell bawaan. Tapi, Ketika Anda menjalankan /usr/bin/time , Anda menjalankan waktu GNU real yang sebenarnya program. Jadi, untuk mengakses perintah sebenarnya, Anda mungkin perlu menentukan jalur eksplisitnya. Bersih? Bagus!

Kata kunci shell 'waktu' bawaan tersedia di sebagian besar shell seperti BASH, ZSH, CSH, KSH, TCSH dll. Kata kunci shell 'waktu' memiliki lebih sedikit opsi daripada yang dapat dieksekusi. Satu-satunya opsi yang dapat Anda gunakan dalam kata kunci 'waktu' adalah -p .

Anda sekarang tahu bagaimana menemukan total waktu eksekusi dari perintah/proses yang diberikan menggunakan perintah 'waktu'. Ingin tahu lebih banyak tentang utilitas 'waktu GNU'? Baca terus!

Pengenalan singkat tentang program 'waktu GNU'

Program waktu GNU menjalankan perintah/program dengan argumen yang diberikan dan merangkum penggunaan sumber daya sistem sebagai keluaran standar setelah perintah selesai. Tidak seperti kata kunci 'waktu', program waktu GNU tidak hanya menampilkan waktu yang digunakan oleh perintah/proses, tetapi juga sumber daya lain seperti memori, panggilan I/O dan IPC.

Sintaks khas dari perintah Time adalah:

/usr/bin/time [options] command [arguments...]

'Opsi' dalam sintaks di atas merujuk pada sekumpulan flag yang dapat digunakan dengan perintah waktu untuk melakukan fungsi tertentu. Daftar opsi yang tersedia diberikan di bawah ini.

  • -f , --format - Gunakan opsi ini untuk menentukan format output yang Anda inginkan.
  • -p , --portability - Gunakan format keluaran portabel.
  • -o file, --output =FILE - Menulis output ke FILE alih-alih ditampilkan sebagai keluaran standar.
  • -a , --append - Tambahkan output ke FILE alih-alih menimpanya.
  • -v , --verbose - Opsi ini menampilkan deskripsi rinci tentang keluaran utilitas 'waktu'.
  • --quiet - Opsi ini mencegah utilitas waktu 'waktu' untuk melaporkan status program.

Saat menggunakan program 'GNU time' tanpa opsi apa pun, Anda akan melihat output seperti di bawah ini.

$ /usr/bin/time wc /etc/hosts
9 28 273 /etc/hosts
0.00user 0.00system 0:00.00elapsed 66%CPU (0avgtext+0avgdata 2024maxresident)k
0inputs+0outputs (0major+73minor)pagefaults 0swaps

Jika Anda menjalankan perintah yang sama dengan kata kunci 'waktu' bawaan shell, hasilnya akan sedikit berbeda:

$ time wc /etc/hosts
9 28 273 /etc/hosts

real 0m0.006s
user 0m0.001s
sys 0m0.004s

Terkadang, Anda mungkin ingin menulis keluaran penggunaan sumber daya sistem ke file daripada menampilkannya di Terminal. Untuk melakukannya, gunakan -o tandai seperti di bawah ini.

$ /usr/bin/time -o file.txt ls
dir1 dir2 file1 file2 file.txt mcelog

Seperti yang Anda lihat di output, utilitas Time tidak menampilkan output. Karena, kita menulis output ke file bernama file.txt . Mari kita lihat file ini:

$ cat file.txt 
0.00user 0.00system 0:00.00elapsed 66%CPU (0avgtext+0avgdata 2512maxresident)k
0inputs+0outputs (0major+106minor)pagefaults 0swaps

Saat Anda menggunakan -o flag, jika tidak ada file bernama 'file.txt', maka akan membuat dan menulis output di dalamnya. Jika file.txt sudah ada, itu akan menimpa kontennya.

Anda juga dapat menambahkan output ke file alih-alih menimpanya menggunakan -a bendera.

$ /usr/bin/time -a file.txt ls

-f flag memungkinkan pengguna untuk mengontrol format output sesuai keinginannya. Katakan misalnya, perintah berikut menampilkan output dari 'ls ' dan hanya menampilkan pengguna, sistem, dan total waktu.

$ /usr/bin/time -f "\t%E real,\t%U user,\t%S sys" ls
dir1 dir2 file1 file2 mcelog
0:00.00 real, 0.00 user, 0.00 sys

Harap diperhatikan bahwa perintah 'time' bawaan shell tidak mendukung semua fitur program waktu GNU.

Untuk detail lebih lanjut tentang utilitas waktu GNU, lihat halaman manual.

$ man time

Untuk mengetahui lebih lanjut tentang kata kunci 'Waktu' bawaan Bash, jalankan:

$ help time

Linux
  1. Jadwalkan tugas dengan Linux pada perintah

  2. Kuasai perintah Linux ls

  3. temukan Contoh Perintah di Linux

  1. Panduan untuk Perintah "Temukan" Linux

  2. Status Proses Linux

  3. Apa perintah untuk menemukan prioritas proses di Linux?

  1. Cara Menemukan File di Linux Dengan Perintah Temukan

  2. Cara Menggunakan Perintah find Linux untuk Menemukan File

  3. Perintah cari di Linux