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!

Python - Performance Measurement

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:

  1. Ukur, jangan duga: Sentiasa profile sebelum mengoptimumkan.
  2. Uji skenario realistik: Ukur dengan data dan pola penggunaan dunia sebenar.
  3. Ulangi pengukuran: Prestasi boleh berbeza, jadi ambil beberapa pengukuran.
  4. Bandingkan adil: Pastikan anda membandingkan apel dengan apel apabila menguji pelaksanaan yang berbeza.
  5. 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