Python

Modul Python timeit

Modul Python timeit

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 import
mula = 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.

Buat semula butang tetikus anda secara berbeza untuk perisian yang berbeza dengan X-Mouse Button Control
Mungkin anda memerlukan alat yang dapat mengubah kawalan tetikus anda dengan setiap aplikasi yang anda gunakan. Sekiranya ini berlaku, anda boleh menc...
Kajian Tetikus Tanpa Wayar Microsoft Sculpt Touch
Saya baru-baru ini membaca mengenai Sentuhan Microsoft Sculpt tetikus tanpa wayar dan memutuskan untuk membelinya. Setelah menggunakannya sebentar, sa...
Trackpad dan Mouse Pointer pada skrin Windows AppyMouse untuk Tablet Windows
Pengguna tablet sering kehilangan penunjuk tetikus, terutama ketika mereka biasa menggunakan komputer riba. Telefon pintar dan tablet skrin sentuh dil...