Дэниел Рой Гринфелд: Использов... Заметка
RSS Планета Python

Дэниел Рой Гринфелд: Использование pyinstrument для профилирования Air-приложений

Air, построенный на FastAPI, может использовать pyinstrument для профилирования производительности. Для этого установите air[standard] и pyinstrument. Пример кода демонстрирует интеграцию pyinstrument путем его условной активации на основе переменной окружения PROFILING. Это важно для предотвращения накладных расходов на производительность в производственных средах. Функция промежуточного слоя profile_request перехватывает HTTP-запросы. Если присутствует параметр запроса profile, pyinstrument начинает профилирование. После обработки запроса call_next, pyinstrument останавливается и возвращает HTML-вывод результатов профилирования. Это позволяет визуально анализировать узкие места производительности. Приложение включает страницу index со ссылками для имитации задержек с помощью asyncio.sleep. Эти ссылки доступны с параметром запроса profile=1 для запуска профилирования. Чтобы запустить приложение с включенным профилированием без постоянной установки переменной окружения, предварите команду сервера разработки PROFILING=1. Например, PROFILING=1 fastapi dev main.py активирует профилирование для этого конкретного запуска. Результаты профилирования затем можно просмотреть, перейдя по адресу http://localhost:8000 в вашем браузере.
CdXz5zHNQW_NqUVTOcpDB.png