Профайлер или профилировщик в программировании — это специализированный программный инструмент, который выполняет процесс профилирования. Профилирование — это процесс, при котором собираются характеристики работоспособности какой-то программы. Характеристики работы программы нужны для того, чтобы оценить насколько эффективно работает исследуемая программа и выявить ее «слабые» участки.
Перечислим профайлеры PHP живущие сами по себе и не зависящие от CMS/CMF.
1) XDebug ( https://xdebug.org/ )
Плюсы:
- самый популярный, большое сообщество
- бесплатный
- интеграция с PHPStorm
- возможность ставить точки остановка
Минусы:
- для прода не подойдет, только для разработки, т.к. огромный overhead по времени
- сильно забивает логи
- не прост в установке и настройке
- пишут, что не всегда показывает почему та или иная страница долго загружается
В качестве графического интерфейса может быть дополнительно установлен Webgrind (веб морда https://github.com/jokkedk/webgrind ), либо WinCacheGrind (для винды https://github.com/ceefour/wincachegrind ), либо KCachegrind (оболочка kde для линукс).
2) XPHrof ( https://github.com/longxinH/xhprof#installation )
Плюсы:
- легковесный, практически не даёт overhead’а, можно включать на проде
- бесплатный
- прост в настройке
- позволяет посмотреть сколько раз была вызвана функция и сколько она выполнялась по времени, а также родительскую функцию и дочернюю
Минусы:
- слаб в визуализации данных
В качестве графического интерфейса может быть дополнительно установлен XHGui (веб морда https://github.com/perftools/xhgui ).
Младше версии PHP 7 ставится скорее всего путем ручной сборки линуксовых пакетов (под debian скорее всего пакет php5-dev ушел в архив). От версии PHP 7 форки https://github.com/tideways/php-xhprof-extension и https://github.com/perftools/xhgui ставятся без проблем.
3) Z-Ray ( http://www.zend.com/en/products/server )
- платный
- похоже заблочен в РФ
4) Blackfire ( https://www.blackfire.io/ )
- больше чем просто профайлер, также включает инструменты мониторинга и тестирования
- есть анализ запросов к базе данных
- платный
Является переписанным XHProf.
5) Tideways ( https://tideways.com/ )
Дальнейшее развитие XHProf, из той же серии что и предыдущий — много плюшек, но стоит денег.
6) SPX ( https://github.com/NoiseByNorthwest/php-spx )
- бесплатный
- поставляется с веб-интерфейсом
- хорошо визуализирован, помогает разобраться как работает приложение
Чаще всего используется рядом с XDebug и XHProf. Автор приложения считает что расширение не готово к использованию в продакшене, поэтому лучше устанавливать его только локально и на тестовые сервера.
7) Pinda ( http://pinba.org/ )
Сервис для получения realtime-статистики от работающих приложений без накладных расходов на её сбор. Может использоваться для пробрасывания данных в Zabbix.