Профайлеры PHP

Профайлер или профилировщик в программировании — это специализированный программный инструмент, который выполняет процесс профилирования. Профилирование — это процесс, при котором собираются характеристики работоспособности какой-то программы. Характеристики работы программы нужны для того, чтобы оценить насколько эффективно работает исследуемая программа и выявить ее «слабые» участки.

Перечислим профайлеры 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.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *