Lua Academy · Pelajaran

Mengukur Durasi

Ukur berapa lama kode berjalan.

Pelajaran 4 dari 413 langkah

Mengukur Durasi adalah pelajaran Lua Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Lua Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Lua Academy mencakup 4 pelajaran total.

Mengukur Waktu Kode Anda

Terkadang Anda ingin mengetahui berapa lama suatu tugas berlangsung: memuat berkas, menjalankan perulangan, atau membangun level. Mengukur durasi membantu Anda menemukan bagian yang lambat dan memperbaikinya.

Lua menyediakan dua alat untuk ini: os.time untuk pengukuran waktu secara kasar dan os.clock untuk pengukuran yang lebih mendetail.

Pola Stopwatch

Gagasan dasarnya sederhana: catat waktu sebelum pekerjaan dimulai, lakukan pekerjaan tersebut, catat waktu setelahnya, lalu kurangi kedua nilai itu.

Selisihnya adalah durasi yang telah berlalu. Pola mulai-berhenti ini merupakan inti dari setiap pengatur waktu.

local start = os.time()
-- work happens here
local stop = os.time()
print("Elapsed:", stop - start)

os.time Bersifat Kasar

os.time menghitung detik penuh, jadi tidak dapat melihat sesuatu yang berlangsung kurang dari satu detik. Dua pemanggilan cepat secara berurutan sering kali menunjukkan selisih nol.

Untuk tugas singkat, Anda memerlukan jam yang lebih mendetail, dan di situlah os.clock digunakan.

local a = os.time()
local b = os.time()
print(b - a)

Berkenalan dengan os.clock

os.clock() mengembalikan jumlah detik, tetapi dalam bentuk desimal yang memiliki bagian pecahan. Fungsi ini mengukur waktu CPU yang digunakan oleh program Anda dengan resolusi tinggi.

Karena itu, fungsi ini ideal untuk mengukur operasi cepat hingga pecahan detik.

print(os.clock())

Mengukur Perulangan

Letakkan sebuah perulangan di antara dua pembacaan os.clock untuk mengetahui berapa lama perulangan tersebut berjalan. Selisihnya adalah waktu yang telah berlalu dalam satuan detik.

Perulangan yang lebih besar membutuhkan waktu lebih lama, sehingga cara ini menjadi metode cepat untuk membandingkan beberapa pendekatan.

local t1 = os.clock()
local sum = 0
for i = 1, 1000000 do sum = sum + i end
local t2 = os.clock()
print("Took", t2 - t1, "seconds")

Memformat Hasil

Bilangan desimal yang panjang sulit dibaca, jadi gunakan string.format untuk menampilkan jumlah tempat desimal yang rapi.

Di sini, %.3f mencetak tiga digit setelah tanda desimal, sehingga detail hingga tingkat milidetik dapat terlihat.

local t1 = os.clock()
for i = 1, 500000 do end
local elapsed = os.clock() - t1
print(string.format("%.3f seconds", elapsed))

os.time vs os.clock

Pilih alat yang tepat. Gunakan os.time untuk rentang waktu di dunia nyata, seperti "berapa detik sejak pengguna masuk."

Gunakan os.clock untuk mengukur kinerja kode, karena fungsi ini presisi dan melacak waktu CPU, bukan waktu jam dinding.

Fungsi Pengatur Waktu yang Dapat Digunakan Kembali

Anda dapat membungkus pola tersebut dalam sebuah fungsi. Fungsi ini menjalankan fungsi yang diberikan, mengukur waktunya, lalu mencetak hasilnya.

Dengan demikian, logika pengukuran waktu berada di satu tempat dan mudah digunakan kembali.

local function timeIt(fn)
  local s = os.clock()
  fn()
  print(string.format("%.4f s", os.clock() - s))
end
timeIt(function() for i=1,100000 do end end)

Selisih Lintas Jam

Untuk selisih waktu yang panjang di dunia nyata, os.difftime pada dua nilai os.time merupakan cara yang paling jelas. Fungsi ini mengembalikan rentang waktu dalam detik.

Bagilah dengan 60 untuk mendapatkan menit atau dengan 3600 untuk mendapatkan jam agar hasilnya mudah dilaporkan.

local started = os.time({year=2025, month=1, day=1, hour=9})
local ended = os.time({year=2025, month=1, day=1, hour=17})
local hours = os.difftime(ended, started) / 3600
print(hours, "hours")

Menampilkan Menit dan Detik

Untuk menyajikan durasi dalam menit dan detik, gunakan pembagian bilangan bulat dan operator modulo.

// menghasilkan menit penuh dan % menghasilkan sisa detik.

local total = 145
local mins = total // 60
local secs = total % 60
print(string.format("%d:%02d", mins, secs))

Perhitungan Hitung Mundur Sederhana

Gabungkan berbagai gagasan untuk melaporkan waktu yang tersisa. Kurangi waktu sekarang dari waktu target, lalu format detik menjadi menit dan detik.

Hasilnya adalah tampilan hitung mundur yang rapi.

local target = os.time() + 90
local left = os.difftime(target, os.time())
print(string.format("%d:%02d left", left // 60, left % 60))

Pemeriksaan Singkat

Pilih alat terbaik untuk pengukuran waktu yang presisi.

Ringkasan

Untuk mengukur durasi, baca jam sebelum dan sesudahnya, lalu kurangi kedua nilai itu. Gunakan os.time untuk rentang waktu di dunia nyata dalam detik penuh dan os.clock untuk pengukuran waktu kode yang presisi hingga pecahan detik.

Format hasil dengan string.format, lalu ubah detik mentah menjadi menit dan detik menggunakan // dan %. Alat-alat ini memungkinkan Anda mengukur waktu apa pun, mulai dari perulangan hingga satu hari kerja.

Gratis untuk memulai

Belajar Lua dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
40
Pelajaran
159

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Mengukur Durasi” gratis?

Ya — teks lengkap “Mengukur Durasi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Lua Academy, upgrade ke CoddyKit PRO. Kursus Lua Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Mengukur Durasi”?

Ukur berapa lama kode berjalan. Kamu berlatih Lua Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Lua Academy?

Tidak diperlukan pengalaman sebelumnya. Lua Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Mengukur Durasi” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Lua Academy ini?

Ya. Setiap pelajaran Lua Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. os.time dan os.date
  2. Memformat Tanggal
  3. Aritmetika Waktu
  4. Mengukur Durasi
← Kembali ke Lua Academy