Не понимаю, как работает Timeit. Нужно объяснение
Я не понимаю, как я получаю timeit
работать. Я сделал пример, где я хочу вычислить разницу во времени обработки. Я был бы вечно благодарен, если бы у кого-то было время, чтобы сломать это для меня.
Басс
def main():
prod_nums = ['V475', 'F987', 'Q143', 'R688']
def search_fast(prod_nums):
for item in prod_nums:
if item == 'R688':
return True
return False
def search_slow(prod_nums):
return_value = False
for item in prod_nums:
if item == 'R688':
return_value = True
return return_value
1 ответ
Если вы хотите передать аргументы своей функции, вы можете использовать timeit.Timer
, но сделайте ваш список глобальным, как это:
prod_nums = ['V475', 'F987', 'Q143', 'R688']
А затем запустите это:
from timeit import Timer
t = Timer(lambda: search_fast(prod_nums))
print t.timeit() # In my case will print 0.336354970932
t = Timer(lambda: search_slow(prod_nums))
print t.timeit() # 0.374251127243
timeit
полезно, когда вы хотите проверить небольшой кусок кода в вашей среде разработки.
Если ваша функция выглядит так:
def search_slow():
prod_nums = ['V475', 'F987', 'Q143', 'R688']
return_value = False
for item in prod_nums:
if item == 'R688':
return_value = True
return return_value
Ты можешь использовать timeit.timeit
import timeit
timeit.timeit(search_slow)
>>> 0.3833189010620117
Это не вернет тебе никакого результата, только время, которое потребовалось. Это еще один сценарий, в котором вы можете использовать декоратор. В основном вы можете использовать timeit
чтобы сказать вам, сколько времени требуется для выполнения функции, так же, как time sample_file.py
в вашем терминале.
На основе документов Python ( https://docs.python.org/2/library/timeit.html):This module provides a simple way to time small bits of Python code. It has both a Command-Line Interface as well as a callable one. It avoids a number of common traps for measuring execution times.