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!

Python - Performance Measurement

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:

  1. Ukur, jangan duga: Selalu profil sebelum mengoptimalkan.
  2. Uji skenario realistis: Mengukur dengan data dan pola penggunaan dunia nyata.
  3. Ulangi pengukuran: Kinerja bisa berubah, jadi ambil beberapa pengukuran.
  4. Bandingkan dengan adil: Pastikan Anda mengbandingkan apel dengan apel saat menguji implementasi yang berbeda.
  5. 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