Python - Pengukuran Kinerja
Pengenalan tentang Pengukuran Kinerja
Halo, para pemrogram Python yang aspiratif! Hari ini, kita akan memasuki dunia yang menarik tentang pengukuran kinerja di Python. Sebagai guru ilmu komputer yang ramah di lingkungan Anda, saya sangat senang untuk mengarahkan Anda dalam perjalanan ini. percayalah, pada akhir pelajaran ini, Anda akan mengukur kinerja kode Anda seperti seorang profesional!
Mengapa Mengukur Kinerja?
Bayangkan Anda membuat kue kering. Anda ingin tahu yang mana resep yang lebih cepat, kan? Baiklah, pengukuran kinerja dalam pemrograman sama seperti itu - kita ingin tahu kode mana yang berjalan lebih cepat dan menggunakan fewer sumber daya. itu bukan hanya tentang hak untuk bersuara; kode yang efisien dapat menghemat waktu, energi, dan bahkan uang di dunia nyata!
Pengukuran Waktu Dasar
Mari kita mulai dengan cara paling sederhana untuk mengukur kinerja: mengukur berapa lama kode kita berjalan.
Menggunakan Modul time
Modul time
di Python adalah tempat pertama kita berhenti dalam perjalanan kinerja ini. Berikut adalah contoh sederhana:
import time
waktu_mulai = time.time()
# Kode Anda ada di sini
for i in range(1000000):
pass
waktu_selesai = time.time()
print(f"Waktu eksekusi: {waktu_selesai - waktu_mulai} detik")
Dalam contoh ini, kita menggunakan time.time()
untuk mendapatkan waktu saat ini sebelum dan setelah kode kita berjalan. Perbedaan ini memberikan kita waktu eksekusi. Itu seperti menggunakan stopwatch!
Modul timeit
Untuk pengukuran yang lebih akurat, khususnya untuk kode snippet kecil, kita menggunakan modul timeit
. Itu seperti memiliki stopwatch dengan presisi tinggi untuk kode Anda!
import timeit
def fungsi_uji():
return sum(range(100))
waktu_eksekusi = timeit.timeit(fungsi_uji, number=10000)
print(f"Waktu eksekusi rata-rata: {waktu_eksekusi / 10000} detik")
Kode ini menjalankan fungsi_uji
kita 10.000 kali dan memberikan kita rata-rata waktu eksekusi. Ini sangat baik untuk membandingkan implementasi yang berbeda dari fungsi yang sama.
Pengukuran Penggunaan Memori
Sekarang, mari kita berbicara tentang pengukuran penggunaan memori. Itu seperti memeriksa berapa banyak ruang yang kode Anda mengambil di otak komputer Anda!
Menggunakan Modul memory_profiler
Pertama, Anda perlu menginstal memory_profiler
:
pip install memory_profiler
Sekarang, mari kita lihat itu dalam aksi:
from memory_profiler import profile
@profile
def fungsi_kurang_memori():
daftar_besar = [1] * (10 ** 6)
del daftar_besar
if __name__ == '__main__':
fungsi_kurang_memori()
Jalankan skrip ini dengan:
python -m memory_profiler skrip Anda.py
Anda akan melihat laporan penggunaan memori baris per baris. Itu seperti memiliki visi sinar X tentang konsumsi memori kode Anda!
Profil CPU
Mari kita pindah ke profil CPU. Ini seperti menonton kode Anda dalam slow motion untuk melihat bagian mana yang bekerja paling keras.
Menggunakan cProfile
Modul cProfile
bawaan Python adalah alat yang kuat untuk profil CPU:
import cProfile
def fungsi_intensif_cpu():
return sum(i*i for i in range(10**6))
cProfile.run('fungsi_intensif_cpu()')
Ini akan memberikan Anda laporan rinci tentang berapa lama setiap bagian dari fungsi Anda mengambil. Itu seperti memiliki mikroskop untuk kinerja kode Anda!
Alat Visualisasi
Terkadang, melihat adalah percaya. Mari kita lihat beberapa alat untuk visualisasi data kinerja kita.
Grafik Api dengan py-spy
Pertama, instal py-spy
:
pip install py-spy
Sekarang, Anda dapat membuat grafik api dari program Python Anda:
py-spy record -o profile.svg -- python skrip Anda.py
Ini akan membuat grafik api yang indah yang menunjukkan Anda di mana program Anda menghabiskan waktu. Itu seperti memiliki peta panas dari kinerja kode Anda!
Praktek Terbaik untuk Pengukuran Kinerja
Mari kita tutup dengan beberapa praktek terbaik. Ini adalah seperti aturan emas pengukuran kinerja:
- Ukur, jangan duga: Selalu profil sebelum mengoptimalkan.
- Uji skenario realistis: Mengukur dengan data dan pola penggunaan dunia nyata.
- Ulangi pengukuran: Kinerja bisa berubah, jadi ambil beberapa pengukuran.
- Bandingkan dengan adil: Pastikan Anda mengbandingkan apel dengan apel saat menguji implementasi yang berbeda.
- Pertimbangkan gambaran umum: Terkadang, kode yang sedikit lebih lambat mungkin lebih mudah dibaca atau dipelihara.
Ringkasan dari Alat Pengukuran Kinerja
Berikut adalah tabel yang praktis yang menyummarikan alat yang kita diskusikan:
Alat | Tujuan | Kemudahan Penggunaan | Akurasi |
---|---|---|---|
Modul time
|
Pemilihan dasar | Mudah | Rendah |
Modul timeit
|
Pemilihan yang akurat untuk kode snippet kecil | Sedang | Tinggi |
memory_profiler |
Pengukuran penggunaan memori | Sedang | Tinggi |
cProfile |
Profil CPU | Sedang | Tinggi |
py-spy |
Visualisasi profil CPU | Sedang | Tinggi |
Ingat, pengukuran kinerja adalah keterampilan yang membaik dengan praktek. Jangan kesusahan jika itu tampak kompleks di awal - bahkan programmer yang berpengalaman masih belajar teknik baru secara terus-menerus!
Sebagai penutup pelajaran ini, saya berharap Anda merasa antusias tentang mengukur dan meningkatkan kinerja kode Anda. Ini adalah keterampilan yang krusial yang akan membantu Anda selama perjalanan pemrograman Anda. Tetap mengkodekan, tetap mengukur, dan yang paling penting, tetap untuk bersenang-senang dengan Python!
Credits: Image by storyset