Фокус на одна конкретная вещь . Дисковый ввод / вывод медленный, поэтому я бы выбрал его из теста, если все, что вы собираетесь настроить, - это запрос к базе данных.
И если вам нужно рассчитать время выполнения вашей базы данных, вместо этого ищите инструменты базы данных, такие как запрос плана запроса, и обратите внимание, что производительность зависит не только от точного запроса и имеющихся у вас индексов, но и от загрузки данных ( сколько данных вы сохранили).
Тем не менее, вы можете просто поместить свой код в функцию и запустить эту функцию с помощью timeit.timeit()
:
def function_to_repeat():
# ...
duration = timeit.timeit(function_to_repeat, number=1000)
Это отключит сборку мусора, повторно вызовет функцию function_to_repeat()
и определит время общей продолжительности этих вызовов, используя timeit.default_timer()
, который является наиболее точным из доступных часов для вашей конкретной платформы.
Вы должны переместить код установки из повторяющейся функции; Например, сначала вы должны подключиться к базе данных, а затем только к запросам. Используйте аргумент setup
для импорта или создания этих зависимостей и передачи их в вашу функцию:
def function_to_repeat(var1, var2):
# ...
duration = timeit.timeit(
'function_to_repeat(var1, var2)',
'from __main__ import function_to_repeat, var1, var2',
number=1000)
будет извлекать глобальные переменные function_to_repeat
, var1
и var2
из вашего сценария и передавать их в функцию при каждом повторении.