Pengaturcaraan bukan sekadar menyelesaikan tugas dan mendapatkan hasil yang ingin kita capai. Ini juga mengenai seberapa cepat program berjalan dan dijalankan sehingga output yang diinginkan tercapai. Dengan sebilangan besar bahasa pengaturcaraan, tidak mudah membandingkan seberapa cepat program berjalan dan tidak pernah mudah untuk menentukan sekeping kod tertentu untuk memahami bahagian mana dari kod kita yang paling banyak menghabiskan masa untuk dilaksanakan. Inilah masalah yang diselesaikan oleh Python timeit modul.
Modul Python timeit
Python timeit modul membolehkan kita membuat masa pelaksanaan sekeping kod tanpa mengambil kira proses latar belakang yang dijalankan untuk membuat kod yang dapat dilaksanakan. Sekiranya anda memerlukan pengukuran yang sedikit tepat mengenai prestasi kod anda timeit adalah modul yang perlu dicari.
contoh sederhana timeit
Kami akan memulakan dengan menggunakan modul timeit langsung dari command prompt. modul timeit dapat digunakan terus dari CLI di mana kita dapat memasukkan pernyataan gelung sederhana dan masa menggunakan perintah yang ditunjukkan:
$ python - penukaran$ python -m timeit '"&".gabung (str (n) untuk n dalam jarak (1000)) '
$ python -m timeit '"&".gabung ([str (n) untuk n dalam jarak (1000)]) '
$ python -m timeit '"&".sertai (peta (str, jarak (1000))) '
Inilah yang kita dapat kembali dengan arahan ini:
Masa pelaksanaan dari CLI menggunakan timeit
Di salah satu bahagian kemudian, kita akan belajar bagaimana kita dapat menguruskan bilangan gelung yang dilakukan untuk mencari bilangan optimum untuk pelaksanaan ungkapan tertentu.
Menetapkan sekeping kod
Sekiranya anda mempunyai skrip python asas yang anda mahu mengukur masa, modul timeit adalah cara untuk pergi:
timeit import# kod persediaan dilaksanakan sekali sahaja
setup_code = "dari sqrt import matematik"
# coretan kod utama untuk pemeriksaan prestasi
code_to_measure = "'
contoh def ():
mylist = []
untuk julat x (100):
mylist.tambahkan (sqrt (x))
'"
# pernyataan timeit
mencetak (timeit.timeit (persediaan = setup_code,
stmt = code_to_measure,
nombor = 10000))
Mari lihat output untuk arahan ini:
Menentukan gelung
Dalam kod ini, kami juga melihat bagaimana kami dapat mengawal bilangan pengulangan yang akan dilakukan oleh modul waktu untuk mencari waktu pelaksanaan yang terbaik untuk program ini.
Ukur masa untuk kod berbilang baris dari CLI
Kita juga dapat mengukur masa untuk kod yang merangkumi pelbagai baris di Python CLI. Mari lihat contoh program untuk melihat ini:
$ python -m timeit -s \> "linuxhint = " \
> "untuk n dalam julat (1000):" \
> "linuxhint [str (n)] = n"
Inilah yang kita dapat kembali dengan arahan ini:
Menetapkan kod berbilang baris pada CLI
Secara amnya membandingkan dua blok kod
Sekiranya anda tidak mahu bersusah payah menggunakan CLI dan hanya ingin membandingkan dua program Python sehingga anda tahu yang mana yang berjalan lebih cepat, ada cara yang cukup mudah untuk mencapainya:
timeit importmula = timeit.default_timer ()
funcOne ()
mencetak (timeit.default_timer () - mula)
mula = timeit.default_timer ()
funcTwo ()
mencetak (timeit.default_timer () - mula)
Dengan menggunakan fungsi default_timer (), kita mulai berulang kali untuk mencari perbezaan yang sama ketika kali terakhir dimulakan. Ini hanya dapat digunakan apabila anda mempunyai gaya penulisan kod modular yang baik sehingga setiap kod kod dapat diukur secara terpisah.
Kesimpulannya
Dalam pelajaran ini, kami mengkaji bagaimana kami dapat menentukan masa kod kami di Python dan melihat kerumitan dan kecekapan masa mereka dan mengatasinya jika kodnya terlalu perlahan.