Назад к вопросам
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()