Пример Python кода

Пример Python кода

Измерение времени выполнения кода

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


import time

def example_function() -> int:
    # Пример функции, которая возвращает целое число
    result = 0
    for i in range(1000000):
        result += i
    return result

start_time = time.time()
result = example_function()
end_time = time.time()

print(f"Результат: {result}")
print(f"Время выполнения: {end_time - start_time} секунд")
                

import timeit

def example_function() -> int:
    # Пример функции, которая возвращает целое число
    result = 0
    for i in range(1000000):
        result += i
    return result

execution_time = timeit.timeit(example_function, number=1)
print(f"Время выполнения: {execution_time} секунд")
                

Указание типов выходных данных функций

Для указания типов выходных данных функций можно использовать аннотации типов, которые были введены в PEP 484.


from typing import List, Dict, Tuple

def example_function() -> int:
    # Пример функции, которая возвращает целое число
    result = 0
    for i in range(1000000):
        result += i
    return result

def another_function() -> List[int]:
    # Пример функции, которая возвращает список целых чисел
    return [1, 2, 3, 4, 5]

def yet_another_function() -> Dict[str, int]:
    # Пример функции, которая возвращает словарь с ключами типа str и значениями типа int
    return {"one": 1, "two": 2, "three": 3}

def tuple_function() -> Tuple[int, str]:
    # Пример функции, которая возвращает кортеж с целым числом и строкой
    return (1, "example")
                

Использование cProfile для профилирования

Для более детального анализа производительности можно использовать модуль cProfile.


import cProfile
import pstats

def example_function() -> int:
    # Пример функции, которая возвращает целое число
    result = 0
    for i in range(1000000):
        result += i
    return result

profiler = cProfile.Profile()
profiler.enable()
result = example_function()
profiler.disable()

stats = pstats.Stats(profiler).sort_stats('cumtime')
stats.print_stats()
                

Использование line_profiler для профилирования строк кода

Для более детального анализа производительности отдельных строк кода можно использовать line_profiler.


# Установите line_profiler, если он еще не установлен:
# pip install line_profiler

from line_profiler import LineProfiler

def example_function() -> int:
    # Пример функции, которая возвращает целое число
    result = 0
    for i in range(1000000):
        result += i
    return result

profiler = LineProfiler()
profiler.add_function(example_function)
profiler.enable_by_count()
result = example_function()
profiler.print_stats()