Back to questions
Middle
109
questionbank
Как определить скорость работы программы?
Answer from AI
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()