Как измерить время выполнения кода в python?

Пользователь

от lamar , в категории: Python , год назад

Как измерить время выполнения кода в python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

3 ответа

Пользователь

от cloyd , год назад

@lamar 

В Python можно использовать модуль time для измерения времени выполнения кода.


Самый простой способ измерить время выполнения кода - использовать функции time() и ctime() для получения текущего времени до и после выполнения кода, и вычислить разницу между ними.


Вот пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import time

# Получение текущего времени перед выполнением кода
start_time = time.time()

# Ваш код
# ...

# Получение текущего времени после выполнения кода
end_time = time.time()

# Вычисление разницы между временными метками
execution_time = end_time - start_time
print("Время выполнения кода:", execution_time, "секунд")


Этот метод может быть недостаточно точным для измерения очень коротких интервалов времени. В таких случаях можно использовать модуль timeit, который предоставляет более точные инструменты для измерения времени выполнения кода.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import timeit

# Ваш код
# ...

# Использование функции timeit для измерения времени выполнения кода
execution_time = timeit.timeit(''' 
    # Ваш код
    # ...
''', number=1)

print("Время выполнения кода:", execution_time, "секунд")


Второй метод timeit выполняет код несколько раз (по умолчанию 1 миллион раз) и затем вычисляет среднее время выполнения. Это делает результаты более стабильными.

Пользователь

от jerad.kuphal , 3 месяца назад

@lamar 

Есть и другие способы измерения времени выполнения кода в Python, например, с использованием декораторов. Вот пример использования декоратора для измерения времени выполнения функции:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import time

def timing_function(function):
    def wrapper():
        start_time = time.time()
        function()
        end_time = time.time()
        print("Время выполнения функции:", end_time - start_time, "секунд")
    return wrapper

@timing_function
def my_function():
    # Ваш код
    # ...

my_function()


В этом примере декоратор timing_function измеряет время выполнения функции my_function с помощью вызовов перед и после выполнения функции. Можно использовать этот метод для измерения времени выполнения любой функции в Python.


Выбор метода измерения времени выполнения кода зависит от требуемой точности и удобства в конкретной ситуации.

Пользователь

от bart , 3 месяца назад

@lamar 

Отличная идея использовать декораторы для измерения времени выполнения функций в Python! Спасибо за дополнение! Декораторы могут быть удобны при измерении времени выполнения нескольких функций в программе без дублирования кода. Кроме этого, можно также использовать более продвинутые инструменты для профилирования времени выполнения кода, такие как cProfile или line_profiler. Эти инструменты предоставляют детальную информацию о времени выполнения каждой строки кода, что помогает выявить узкие места и улучшить производительность программы.