Найти в Дзене
pro Python

🚀 Бенчмаркинг: сделай свой код быстрее

🚀 Бенчмаркинг: сделай свой код быстрее 🔥 Бенчмаркинг - это измерение производительности твоего кода. Две разные функции Фибоначчи — разная скорость: # Рекурсивная: fibonacci(30) = 73 мс 🐢 # Итеративная: fibonacci(200) = 0 нс 🚀 Разница в ~∞ раз! Бенчмарки помогают найти тяжелые функции, сравнить алгоритмы и оптимизировать код. ✨ Главный инструмент: pytest-codspeed — просто добавь декоратор: @pytest.mark.benchmark def test_fib_bench(): result = fibonacci(30) assert result == 832040 💡 Параметризация — сравни алгоритмы: @pytest.mark.benchmark @pytest.mark.parametrize("n", [5, 10, 15, 20, 30]) def test_fib_parametrized(n): result = fibonacci(n) assert result > 0 Результаты показывают экспоненциальную сложность O(2^n) 📈 Обычные тесты проверяют корректность результата, а бенчмарки измеряют производительность и стабильность времени выполнения под нагрузкой, можно запустить с различными входами, параметризацией и настройками окружения. 🔗 Полная статья

🚀 Бенчмаркинг: сделай свой код быстрее

🔥 Бенчмаркинг - это измерение производительности твоего кода.

Две разные функции Фибоначчи — разная скорость:

# Рекурсивная: fibonacci(30) = 73 мс 🐢

# Итеративная: fibonacci(200) = 0 нс 🚀

Разница в ~∞ раз! Бенчмарки помогают найти тяжелые функции, сравнить алгоритмы и оптимизировать код.

✨ Главный инструмент: pytest-codspeed — просто добавь декоратор:

@pytest.mark.benchmark

def test_fib_bench():

result = fibonacci(30)

assert result == 832040

💡 Параметризация — сравни алгоритмы:

@pytest.mark.benchmark

@pytest.mark.parametrize("n", [5, 10, 15, 20, 30])

def test_fib_parametrized(n):

result = fibonacci(n)

assert result > 0

Результаты показывают экспоненциальную сложность O(2^n) 📈

Обычные тесты проверяют корректность результата, а бенчмарки измеряют производительность и стабильность времени выполнения под нагрузкой, можно запустить с различными входами, параметризацией и настройками окружения.

🔗 Полная статья