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,
real
-merujuk total waktu yang dibutuhkan oleh perintah/program,user
- mengacu pada waktu yang dibutuhkan oleh program dalam mode pengguna,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