Apa itu Wall Time?
Wall time, atau yang sering disebut real-world time, clock time, wall-clock time, atau lebih tepatnya elapsed real time, adalah waktu yang dibutuhkan sebuah program atau proses untuk berjalan dari awal hingga selesai seperti yang diukur oleh manusia. Wall time itu penting karena cara komputer mengukur waktu bisa berbeda dengan bagaimana pengguna merasakannya.
Komputer mengukur waktu berdasarkan CPU clock speed. Setiap tugas tertentu membutuhkan sejumlah siklus CPU untuk diselesaikan. Namun, komputer menjalankan banyak tugas dalam satu detik, dan waktu CPU akan terbagi sesuai dengan kebutuhan tiap program.
Di sistem operasi Linux dan Unix, waktu yang dihabiskan oleh program saat benar-benar berjalan di CPU disebut CPU time. Bisa saja sebuah program berjalan selama beberapa detik dalam waktu nyata, tetapi hanya menunjukkan penggunaan CPU time kurang dari satu detik karena CPU sedang bergantian menjalankan proses lain.
Selain itu, CPU modern dengan multicore atau multiprosesor bisa menjalankan beberapa thread sekaligus. Artinya, jika sebuah proses berjalan pada beberapa thread secara paralel, ia bisa menggunakan lebih banyak CPU time daripada wall time yang terlihat.
Faktor yang Mempengaruhi Wall Time
Banyak faktor yang dapat memengaruhi berapa lama waktu nyata yang dibutuhkan oleh sebuah proses di komputer:
- Kecepatan clock CPU dan instruction set.
- Seberapa banyak proses lain yang sedang berjalan.
- Waktu tunggu untuk disk I/O.
- Waktu tunggu untuk network I/O.
Jika sebuah proses memakan terlalu banyak wall time, pengguna bisa menjadi tidak sabar dan menganggapnya macet, hang, atau timeout, lalu menutup prosesnya secara paksa. Oleh karena itu, agar pengalaman pengguna tetap optimal, program harus responsif dan memprioritaskan efisiensi wall time dibandingkan hanya CPU time.
Bagaimana Cara Meminimalkan Wall Time?
Sebagai contoh, CPU modern bisa beroperasi hingga 5 GHz, yang berarti mampu menjalankan 5 miliar operasi dalam satu detik. Namun, pada kebanyakan komputer pengguna biasa, CPU sering kali lebih banyak idle daripada benar-benar bekerja. Ini karena CPU dapat memproses data jauh lebih cepat dibandingkan kecepatan baca dari hard disk atau jaringan.
Untuk mengurangi wall time, beberapa program menyimpan data dalam bentuk terkompresi di disk dan menggunakan CPU ekstra untuk mendekompresinya. Dengan cara ini, proses membaca data dari disk yang jauh lebih lambat dapat dikurangi seminimal mungkin.
Beberapa alat monitoring dan profiling program menawarkan opsi untuk menampilkan CPU time atau wall time dari suatu proses. Hal ini membantu pengguna dalam mengoptimalkan performa tergantung pada kebutuhannya.
Dalam pengembangan web, wall time juga menjadi faktor penting. Jika sebuah website membutuhkan waktu lama untuk dimuat, pengguna bisa langsung meninggalkan situs tersebut. Oleh karena itu, developer biasanya melakukan optimasi seperti minifikasi kode, penggunaan JavaScript yang lebih efisien, serta mengurangi jumlah permintaan ke server.
Wall Time dan Beban Kerja Modern
Perkembangan beban kerja baru juga membutuhkan metode baru untuk mengurangi wall time dalam proses komputasi.
Dalam pemrosesan video, misalnya, banyak sistem menggunakan koprosesor video khusus untuk mempercepat enkripsi codec, seperti Intel QuickSync, Nvidia NVENC, atau media engine pada Apple Silicon.
Dalam bidang Artificial Intelligence (AI) dan machine learning (ML), proses sering kali menggunakan GPU atau sirkuit khusus untuk memangkas waktu eksekusi dari beberapa menit atau jam menjadi hitungan detik.
Di beberapa sistem keselamatan, seperti perangkat medis atau alat keselamatan transportasi, memastikan bahwa wall time tetap deterministik dan tepat sangatlah penting. Dalam kasus seperti ini, penggunaan real-time operating system (RTOS) sering kali diperlukan.