Python Timeit () dengan Contoh

Isi kandungan:

Anonim

Apa itu Python Timeit ()?

Python timeit () adalah kaedah di Python library untuk mengukur masa pelaksanaan yang diambil oleh coretan kod yang diberikan. Perpustakaan Python menjalankan penyataan kod 1 juta kali dan memberikan masa minimum yang diambil dari set coretan kod yang diberikan. Python timeit () adalah kaedah berguna yang membantu dalam memeriksa prestasi kod.

Sintaks:

timeit.timeit(stmt, setup,timer, number)

Parameter

  • stmt : Ini akan mengambil kod yang anda mahu mengukur masa pelaksanaannya. Nilai lalai adalah "lulus".
  • persediaan : Ini akan mempunyai perincian persediaan yang perlu dilaksanakan sebelum stmt. Nilai lalai adalah "lulus."
  • pemasa : Ini akan mempunyai nilai pemasa, timeit () sudah mempunyai set nilai lalai, dan kita dapat mengabaikannya.
  • nombor : Stmt akan dilaksanakan mengikut nombor yang diberikan di sini. Nilai lalai adalah 1000000.

Untuk bekerja dengan timeit (), kita perlu mengimport modul, seperti yang ditunjukkan di bawah:

import timeit

Contoh Pertama

Berikut adalah contoh ringkas fungsi timeit ()

Contoh Kod 1:

# testing timeit()import timeitprint(timeit.timeit('output = 10*5'))

Pengeluaran:

0.06127880399999999

Kami telah melihat contoh sederhana yang memberi kita waktu pelaksanaan output penyataan kod sederhana = 10 * 5, dan masa yang diperlukan untuk melaksanakannya adalah 0.06127880399999999.

Waktu Berbagai baris dalam kod python

Ada dua yang boleh anda laksanakan banyak baris kod dalam timeit.timeit (), menggunakan titik koma atau dengan menyimpan kod yang dilampirkan sebagai rentetan dengan petikan tiga.

Berikut adalah contoh yang menunjukkan cara kerjanya.

Contoh 1: Menggunakan titik koma

import timeitprint("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))

Pengeluaran:

The time taken is 0.137031482

Contoh 2: Menggunakan petikan tiga

import timeitimport_module = "import random"testcode = '''def test():return random.randint(10, 100)'''print(timeit.repeat(stmt=testcode, setup=import_module))

Pengeluaran:

C:\pythontest>python testtimeit.pyThe time taken is 0.182619178

timeit - Kaedah:

Berikut adalah 2 kaedah timeit penting

timeit.default_timer () : Ini akan mengembalikan masa lalai ketika dijalankan.

timeit.repeat (stmt, setup, timer, repeat, number) : sama dengan timeit (), tetapi dengan mengulangi timeit () disebut berapa kali ulangan diberikan.

Contoh Program 1:

# testing timeit()import timeitimport_module = "import random"testcode = '''def test():return random.randint(10, 100)'''print(timeit.timeit(stmt=testcode, setup=import_module))

Pengeluaran:

0.46715912400000004

Contoh 2:

default_timer () Contoh

# testing timeit()import timeitimport randomdef test():return random.randint(10, 100)starttime = timeit.default_timer()print("The start time is :",starttime)test()print("The time difference is :", timeit.default_timer() - starttime)

Pengeluaran:

The start time is : 0.220261875The time difference is : 0.0004737320000000045

Contoh 3: timeit.repeat ()

# testing timeit()import timeitimport_module = "import random"testcode = '''def test():return random.randint(10, 100)'''print(timeit.repeat(stmt=testcode, setup=import_module, repeat=5))

Pengeluaran:

[0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]

timeit.repeat () berfungsi serupa dengan fungsi timeit.timeit (), dengan satu-satunya perbezaan yang diperlukan dalam argumen ulangan dan memberikan kembali masa pelaksanaan dalam format array dengan nilai seperti pada bilangan ulangan.

Melaksanakan fungsi timing timeit.timeit () di dalam antara muka baris perintah

Sintaks untuk melaksanakan fungsi anda di dalam timeit () pada baris perintah adalah seperti berikut:

python -m timeit [-n N] [-r N] [-s S] [-t] [-c] [-h] [code statement… ]

Parameter baris arahan:

  • -n N: berapa kali anda mahu kod tersebut dilaksanakan.
  • -r N: berapa kali anda mahu fungsi timeit () diulang
  • -s S: ini akan mempunyai perincian persediaan yang akan dilaksanakan sebelum pelaksanaan kod.
  • -t: untuk ini, anda boleh memanfaatkan masa.waktu ()
  • -c: untuk ini, anda boleh memanfaatkan waktu.waktu ()
  • -h: untuk pertolongan
  • pernyataan kod: Perincian kod.

Contoh:

C:\pythontest>python -m timeit -s 'text="hello world"'20000000 loops, best of 5: 13.1 nsec per loop

Cara lain yang boleh anda jalankan di dalam baris arahan adalah seperti yang ditunjukkan di bawah:

Contoh:

>>> import timeit>>> print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))The time taken is 0.15048536300000137>>>

Mengapa timeit () adalah kaedah terbaik untuk mengukur masa pelaksanaan kod Python?

Berikut adalah beberapa sebab mengapa kami menganggap timeit () adalah kaedah terbaik untuk mengukur masa pelaksanaan.

  • Ia menjalankan pernyataan kod 1 juta kali yang merupakan nilai lalai, dan dari itu, ia akan mengembalikan masa minimum yang diambil. Anda juga boleh menambah / menurunkan 1 juta dengan menetapkan nombor argumen dalam fungsi waktu ().
  • Semasa menjalankan ujian, pengumpulan sampah dilumpuhkan setiap kali mengikut fungsi ().
  • timeit () secara dalaman memerlukan masa yang tepat mengikut sistem operasi anda yang digunakan. Sebagai contoh, ia akan menggunakan time.clock () untuk sistem operasi Windows dan time.time () untuk mac dan Linux.

Ringkasan

Timeit () digunakan untuk mendapatkan waktu pelaksanaan yang diambil untuk kod kecil yang diberikan

Parameter yang digunakan dengan timeit ()

  • stmt: Ini akan mengambil kod yang anda mahu mengukur masa pelaksanaan
  • persediaan: Ini akan mempunyai perincian persediaan yang perlu dilaksanakan sebelum stmt
  • pemasa: Ini akan mempunyai nilai pemasa, timeit () sudah mempunyai set nilai lalai, dan kita dapat mengabaikannya.
  • nombor: Stmt akan dilaksanakan mengikut nombor yang diberikan di sini.