Cara menggunakan modul timeit untuk ujian prestasi kod dalam Python 3.x
Pengenalan:
Apabila membangunkan dan mengoptimumkan program Python, kita selalunya perlu menilai prestasi segmen kod yang berbeza. Ujian prestasi boleh membantu kami mengenal pasti kesesakan dalam kod dan menyediakan asas untuk strategi pengoptimuman yang berbeza. Python menyediakan modul timeit untuk menguji masa pelaksanaan segmen kod kecil dan membandingkan kecekapan pelaksanaan yang berbeza. Artikel ini akan memperkenalkan cara menggunakan modul timeit untuk ujian prestasi kod dan menyediakan beberapa contoh aplikasi biasa.
Penggunaan asas modul timeit: Modul
timeit menyediakan antara muka yang ringkas dan mudah digunakan untuk mengukur masa pelaksanaan serpihan kod. Dalam penterjemah interaktif Python, kita boleh menggunakan modul timeit untuk menjalankan kod melalui baris arahan. Berikut ialah contoh penggunaan asas modul timeit:
import timeit code = ''' a = 1 b = 2 c = a + b ''' time = timeit.timeit(stmt=code, number=100000) print(f'执行时间:{time} 秒')
Dalam contoh di atas, kami telah mentakrifkan coretan kod ringkas yang melaksanakan tiga penyataan, menambah a dan b dan memberikan hasilnya kepada c. Fungsi timeit.timeit() digunakan untuk mengukur masa pelaksanaan serpihan kod. Antaranya, parameter stmt menerima serpihan kod untuk dilaksanakan, dan parameter nombor menunjukkan bilangan kali serpihan kod akan dilaksanakan. Akhir sekali, kami mencetak masa pelaksanaan menggunakan fungsi print().
Jalankan skrip dalam baris arahan, kita akan melihat output yang serupa dengan yang berikut:
执行时间:0.006017888000006268 秒
Unit masa pelaksanaan di sini ialah saat. Dalam kes pelaksanaan tunggal, kita biasanya memerhatikan selang masa yang lebih kecil. Untuk mengukur masa pelaksanaan serpihan kod dengan lebih tepat, modul timeit menjalankan kod berbilang kali dan mengira purata masa pelaksanaan. Secara lalai, ia melaksanakan coretan kod 7 kali dan purata tiga hasil terbaik.
Selain menggunakan modul timeit melalui baris arahan, kami juga boleh menggunakan modul timeit secara langsung dalam program Python. Berikut ialah contoh:
import timeit code = ''' a = 1 b = 2 c = a + b ''' time = timeit.timeit(stmt=code, number=100000) print(f'执行时间:{time} 秒')
Dalam contoh ini, kami mentakrifkan coretan kod dengan cara yang sama dan mengukur masa pelaksanaan melalui fungsi timeit.timeit(). Output yang kami dapat adalah sama seperti contoh sebelumnya.
Penggunaan lanjutan modul timeit:
Selain penggunaan asas, modul timeit juga menyediakan beberapa fungsi lanjutan untuk kawalan yang lebih halus terhadap proses ujian prestasi.
import timeit code = ''' a = 1 b = 2 c = a + b ''' timer = timeit.Timer(stmt=code) time = timer.timeit(number=100000) print(f'执行时间:{time} 秒')
Dalam contoh ini, kami mula-mula mencipta pemasa objek Pemasa dan menghantar coretan kod kepadanya. Kami kemudian menggunakan kaedah timer.timeit() untuk mengukur masa pelaksanaan. Seperti yang anda lihat, output adalah sama seperti contoh sebelumnya.
import timeit code1 = ''' a = 1 b = 2 c = a + b ''' code2 = ''' a = 1 b = 2 c = a * b ''' time1 = timeit.timeit(stmt=code1, number=100000) time2 = timeit.timeit(stmt=code2, number=100000) print(f'执行时间1:{time1} 秒') print(f'执行时间2:{time2} 秒')
Dalam contoh ini, kami mentakrifkan dua coretan kod kod1 dan kod2, yang masing-masing mengira keputusan a + b dan a * b. Dengan memanggil fungsi timeit.timeit() masing-masing, kita mendapat masa pelaksanaan dua coretan kod. Seperti yang anda lihat, hasil output menunjukkan masa pelaksanaan kedua-dua coretan kod masing-masing.
Melalui parameter ini, kami boleh mengawal proses ujian modul timeit dengan lebih fleksibel. Sebagai contoh, kita boleh menggunakan parameter -n untuk menentukan bilangan kali coretan kod dilaksanakan untuk mendapatkan masa pelaksanaan yang lebih tepat. Sebagai contoh, berikut ialah contoh:
import timeit code = ''' a = 1 b = 2 c = a + b ''' time = timeit.timeit(stmt=code, number=10000) print(f'执行时间:{time} 秒')
Dalam contoh ini, kami menggunakan parameter -n untuk menentukan bahawa coretan kod dilaksanakan 10,000 kali untuk mendapatkan masa pelaksanaan yang lebih tepat.
Kesimpulan:
Dengan modul timeit, kami boleh melakukan ujian prestasi kod Python dengan mudah. Ia menyediakan penggunaan mudah dan lanjutan untuk memenuhi keperluan ujian yang berbeza. Sama ada pada baris arahan atau dalam program Python, menggunakan modul timeit untuk ujian prestasi ialah alat yang berkuasa untuk membangunkan dan mengoptimumkan program Python. Saya harap kandungan artikel ini dapat membantu anda.
Rujukan:
Atas ialah kandungan terperinci Cara menggunakan modul timeit untuk ujian prestasi kod dalam Python 3.x. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!