Python - Pengukuran Prestasi
Pengenalan kepada Pengukuran Prestasi
Helo, pemrogram Python yang beraspiration! Hari ini, kita akan membaharu ke atas dunia yang menarik pengukuran prestasi di Python. Sebagai guru sains komputer yang ramah tempat tinggal anda, saya sangat gembira untuk mengajar anda melalui perjalanan ini. percayalah, pada akhir pelajaran ini, anda akan mengukur prestasi kod anda seperti seorang profesional!
Mengapa Mengukur Prestasi?
Bayangkan anda membuat kue kering. Anda mahu tahu yang mana resepi yang lebih cepat, kan? Well, pengukuran prestasi dalam pemrograman adalah seperti itu - kita mahu tahu yang mana kod yang menjalankan lebih cepat dan menggunakan lebih sedikit sumber. Ia bukan hanya tentang hak untuk untuk memuji diri; kod yang efisien dapat menghemat masa, tenaga, dan juga wang di dunia sebenar!
Pengukuran Waktu Dasar
Mari kita mula dengan cara paling mudah untuk mengukur prestasi: mengukur berapa lama kod kita mengambil untuk dijalankan.
Menggunakan Modul time
Modul time
di Python adalah tempat pertama kita untuk menjalankan pengukuran prestasi. Ini adalah contoh yang simple:
import time
start_time = time.time()
# Kod anda ada di sini
for i in range(1000000):
pass
end_time = time.time()
print(f"Masa eksekusi: {end_time - start_time} saat")
Dalam contoh ini, kita menggunakan time.time()
untuk mendapatkan masa semasa sebelum dan selepas kod kita dijalankan. Perbezaannya memberikan kita masa eksekusi. Ia seperti menggunakan raketer!
Modul timeit
Untuk pengukuran yang lebih akurat, khususnya untuk kod yang pendek, kita menggunakan modul timeit
. Ia seperti memiliki raketer tingkat keanjalan yang tinggi untuk kod anda!
import timeit
def test_function():
return sum(range(100))
execution_time = timeit.timeit(test_function, number=10000)
print(f"Masa eksekusi purata: {execution_time / 10000} saat")
Kod ini menjalankan test_function
kita 10,000 kali dan memberikan kita masa eksekusi purata. Ia great untuk membandingkan pelaksanaan yang berbeza bagi fungsi yang sama.
Pengukuran Penggunaan Memori
Sekarang, mari kita bercakap tentang pengukuran penggunaan memori. Ia seperti memeriksa berapa banyak ruang yang kod anda mengambil di atas otak komputer anda!
Menggunakan Modul memory_profiler
Pertama, anda perlu untuk memasang memory_profiler
:
pip install memory_profiler
Sekarang, mari lihat ia beraksi:
from memory_profiler import profile
@profile
def memory_hungry_function():
big_list = [1] * (10 ** 6)
del big_list
if __name__ == '__main__':
memory_hungry_function()
Jalankan skrip ini dengan:
python -m memory_profiler your_script.py
Anda akan melihat laporan baris demi baris penggunaan memori. Ia seperti memiliki pandangan X-ray ke atas penggunaan memori kod anda!
Pengukuran CPU
Mari kita teruskan ke pengukuran CPU. Ia seperti menonton kod anda dalam slow motion untuk melihat yang mana bahagian yang bekerja paling keras.
Menggunakan cProfile
Modul cProfile
terbina-dalam Python adalah alat yang kuat untuk pengukuran CPU:
import cProfile
def cpu_intensive_function():
return sum(i*i for i in range(10**6))
cProfile.run('cpu_intensive_function()')
Ini akan memberikan anda laporan terperinci tentang berapa lama setiap bahagian fungsi anda mengambil masa. Ia seperti memiliki mikroskop untuk prestasi kod anda!
Alat Pemvisualan
Buat masa ini, melihat adalah untuk percaya. Mari lihat beberapa alat untuk memvisualkan data prestasi kita.
Grafik Api dengan py-spy
Pertama, pasang py-spy
:
pip install py-spy
Sekarang, anda boleh membuat grafik api untuk program Python anda:
py-spy record -o profile.svg -- python your_script.py
Ini membuat grafik api yang indah yang menunjukkan di mana program anda menghabiskan masa. Ia seperti memiliki peta panas prestasi kod anda!
Praktis Terbaik untuk Pengukuran Prestasi
Mari kita rakam dengan beberapa praktis terbaik. Ini adalah seperti peraturan emas pengukuran prestasi:
- Ukur, jangan duga: Sentiasa profile sebelum mengoptimumkan.
- Uji skenario realistik: Ukur dengan data dan pola penggunaan dunia sebenar.
- Ulangi pengukuran: Prestasi boleh berbeza, jadi ambil beberapa pengukuran.
- Bandingkan adil: Pastikan anda membandingkan apel dengan apel apabila menguji pelaksanaan yang berbeza.
- Pertimbangkan gambaran besar: Kadang-kadang, kod yang sedikit lebih lambat mungkin lebih mudah dibaca atau dipelihara.
Ringkasan atas Alat Pengukuran Prestasi
Berikut adalah rakam yang mudah untuk mengsuming alat yang kita berbincang:
Alat | Tujuan | Kemudahan Penggunaan | Ketepatan |
---|---|---|---|
Modul time
|
Pengukuran waktu dasar | Mudah | Rendah |
Modul timeit
|
Pengukuran waktu yang tepat bagi kod yang pendek | Sederhana | Tinggi |
memory_profiler |
Pengukuran penggunaan memori | Sederhana | Tinggi |
cProfile |
Pengukuran CPU | Sederhana | Tinggi |
py-spy |
Pengukuran CPU visualisasi | Sederhana | Tinggi |
Ingat, pengukuran prestasi adalah kemahiran yang meningkat dengan latihan. Jangan khuatir jika ia tampak kompleks pada permulaan - bahkan pemrogram berpengalaman masih belajar teknik baru secara terus-menerus!
Sebagai kita rakam pelajaran ini, saya harap anda merasa teruja untuk mengukur dan meningkatkan prestasi kod anda. Ia adalah kemahiran yang kritikal yang akan membantu anda baik di atas perjalanan pemrograman anda. Teruskan untuk mengkod, teruskan untuk mengukur, dan yang paling penting, teruskan untuk memiliki keseronokan dengan Python!
Credits: Image by storyset