Python timeit() – Mengukur Waktu Eksekusi dengan Contoh Praktis
Apa Itu Python timeit()?
Python timeit() adalah modul bawaan yang dirancang untuk mengukur waktu eksekusi cuplikan kode kecil dengan presisi tinggi. Secara default ia menjalankan pernyataan satu juta kali dan melaporkan run tercepat, yang membantu Anda membandingkan kinerja berbagai implementasi.
Sintaks
timeit.timeit(stmt, setup, timer, number)
Parameter
- stmt – Kode yang akan diukur. Default adalah
pass. - setup – Kode yang berjalan sekali sebelum
stmt. Default adalah pass. - timer – Fungsi timer opsional. Modul menyediakan default yang sesuai.
- number – Berapa kali
stmt dieksekusi. Default adalah 1 000 000.
Impor modul terlebih dahulu:
import timeit
Contoh 1 – Mengukur Ekspresi Sederhana
# Uji operasi aritmetika dasar import timeit print(timeit.timeit("output = 10*5"))
Output khas:
0.06127880399999999
Ini menunjukkan waktu (dalam detik) yang diambil untuk run tercepat dari satu juta kali.
Mengukur Beberapa Baris
timeit dapat menangani kode multi-baris dengan memisahkan pernyataan dengan titik koma atau dengan meneruskan string triple-quoted.
Menggunakan Titik Koma
import timeit print("Waktu yang diambil adalah ", timeit.timeit(stmt="a=10;b=10;sum=a+b")) Output:
Waktu yang diambil adalah 0.137031482
Menggunakan String Triple-Quoted
import timeit import_module = "import random" testcode = ''' def test(): return random.randint(10, 100) ''' print(timeit.repeat(stmt=testcode, setup=import_module))
Output:
C:\pythontest>python testtimeit.py Waktu yang diambil adalah 0.182619178
Metode Utama
- timeit.default_timer() – Mengembalikan waktu saat ini dengan resolusi terbaik yang tersedia.
- timeit.repeat(stmt, setup, timer, repeat, number) – Menjalankan
timeit() berulang kali, mengembalikan daftar waktu terbaik untuk setiap run.
Contoh 1 – Menggunakan timeit.timeit()
# Uji fungsi yang mengembalikan integer acak import timeit import_module = "import random" testcode = ''' def test(): return random.randint(10, 100) ''' print(timeit.timeit(stmt=testcode, setup=import_module))
Output:
0.46715912400000004
Contoh 2 – Menggunakan default_timer()
# Ukur satu panggilan fungsi import timeit import random def test(): return random.randint(10, 100) starttime = timeit.default_timer() print("Waktu mulai adalah :", starttime) test() print("Selisih waktu adalah :", timeit.default_timer() - starttime) Output:
Waktu mulai adalah : 0.220261875 Selisih waktu adalah : 0.0004737320000000045
Contoh 3 – Menggunakan timeit.repeat()
# Jalankan uji lima kali dan tangkap waktu terbaik import timeit import_module = "import random" testcode = ''' def test(): return random.randint(10, 100) ''' print(timeit.repeat(stmt=testcode, setup=import_module, repeat=5))
Output:
[0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]
Setiap entri adalah waktu terbaik untuk satu iterasi dari 1 000 000 run.
Penggunaan Baris Perintah
Anda dapat memanggil timeit langsung dari shell:
python -m timeit [-n N] [-r N] [-s S] [-t] [-c] [-h] [code statement ...]
-n N – Jumlah loop untuk pernyataan. -r N – Berapa kali seluruh proses pengukuran diulang. -s S – Kode setup yang dijalankan sekali sebelum pengukuran. -t – Gunakan time.time() sebagai timer. -c – Gunakan time.clock() sebagai timer. -h – Tampilkan bantuan.
Contoh
C:\pythontest>python -m timeit -s 'text="hello world"' 20000000 loops, best of 5: 13.1 nsec per loop
Cara nyaman lainnya adalah memanggil timeit dari REPL:
import timeit print("Waktu yang diambil adalah ", timeit.timeit(stmt="a=10;b=10;sum=a+b")) Output:
Waktu yang diambil adalah 0.15048536300000137
Mengapa timeit() adalah Alat Terbaik untuk Mengukur Kode Python
- Ia menjalankan pernyataan banyak kali (default 1 000 000) dan mengembalikan run tercepat, memberikan estimasi yang andal.
- Pengumpulan sampah dinonaktifkan selama pengukuran, mencegahnya menyelisih hasil.
- Ia secara otomatis memilih timer yang paling presisi untuk sistem operasi Anda (misalnya,
time.clock() pada Windows, time.time() pada macOS/Linux).
Ringkasan
Modul timeit penting untuk benchmarking cuplikan Python pendek. Parameter-nya sederhana:
- stmt – Kode yang akan diukur.
- setup – Kode setup satu kali.
- timer – Fungsi timer opsional.
- number – Berapa kali
stmt berjalan.
Pastikan untuk menggunakan timeit untuk pengukuran yang akurat dan dapat diulang.