Назад к вопросам
Middle
66
questionbank
Как определить скорость работы программы?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Используя модуль timeit для точного измерения времени выполнения небольших фрагментов кода или функций.
import timeit
def my_function():
# Ваш код для измерения
pass
# Измерение времени выполнения функции my_function
execution_time = timeit.timeit(stmt=my_function, number=1000) # Выполнить 1000 раз и измерить общее время
print(f"Время выполнения: {execution_time} секунд")
Также можно использовать модуль time для более простых замеров.
import time
start_time = time.time() # Начало замера
# Ваш код для измерения
time.sleep(1) # Пример работы
end_time = time.time() # Конец замера
print(f"Время выполнения: {end_time - start_time} секунд")
Для профилирования и выявления узких мест в более сложных программах используются модули cProfile и profile.
import cProfile
def slow_function():
for _ in range(100000):
pass
cProfile.run('slow_function()') # Профилирование вызова функции
Еще один способ — использовать декоратор для измерения времени выполнения функций.
import time
def timer_decorator(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"Функция '{func.__name__}' выполнилась за {end_time - start_time:.4f} секунд")
return result
return wrapper
@timer_decorator
def fast_function():
time.sleep(0.1)
fast_function()