Не понимаю, как работает 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.

Другие вопросы по тегам