Измерение производительности в Python
Я пишу веб-приложение на Python, я еще не решил, хочу ли я использовать Flask, web.py или что-то еще, и я хочу иметь возможность делать профиль в живом приложении.
кажется, очень мало информации о том, как вы идете о реализации инструментария для измерения производительности, не делая много печати datetime.теперь () везде.
каков наилучший способ инструментирования вашего приложения Python, чтобы позволить хорошее необходимо произвести измерения. Думаю, я ищу что-то похожее на команды Stackoverflow mvc-mini-profiler.
4 ответов
вы можете просто запустить инструмент cProfile, который поставляется с Python:
python -m cProfile script.py
конечно, вам придется создать script.py файл, который будет выполнять части кода, которые вы хотите протестировать. Если у вас есть модульные тесты, вы также можете использовать это.
или вы можете использовать:
import cProfile
cProfile.run('foo()')
профилировать его из foo
точка входа.
Salihefendic Амир писал короткие (150 Лк) RequestProfiler
, который описан в этом сообщении в блоге:
Я не пробовал, но поскольку это промежуточное ПО WSGI, оно должно быть несколько подключаемым.
вы можете просто использовать инструмент производительности веб-приложений общего назначения, например httpperf. Это работает с использованием внешнего клиента и работает с любой платформой, поскольку она работает против стандартного интерфейса (HTTP). Поэтому он проверяет полную производительность стека.
использовать Новая Реликвия свободная система мониторинга. Вы просто устанавливаете агент на сервере и указываете на свою колбуinit.файл py. После запуска приложения с правильной настройкой агента вы начнете видеть метрики приложения в онлайн-панели мониторинга See New Relic под названием APM. По умолчанию он покажет вам графики пропускной способности вашего приложения (QPS/RPM), время отклика приложения, верхние транзакции, частоту ошибок, трассировку стека ошибок, если таковые имеются(например, для 500 ошибок), вызовы внешних услуг и т. д. Кроме того, вы можете контролировать статистику вашей системы тоже.