Sobes.tech
Middle
95
questionbank

Как определить скорость работы программы?

Ответ от нейросети

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()