Rate this post

Профилирование PHP. FORP — это расширение PHP, которое предоставляет данные PHP профиля.nnFORP предоставляет следующую информацию:n

  • измерение времени и выделенной памяти для каждой функции
  • Использование процессора
  • имя файла и номера строки вызова функции
  • выход в формате Google Trace Event
  • подпись функций
  • группировка функций
  • псевдонимы функций (полезны для анонимных функций)

Для того, чтобы получить информацию по интересующей функции или куску кода необходимо до начала момента исполнения анализируемого кода запустить forp profiler с помощью функции forp_start() и после выполнения тестируемого кода остановить буферизацию с помощью forp_end(). Для вывода собранной информации используется forp_dump(). Есть также набор функций для удобного отображения информации хранящейся в полученном дампе. Среди них, например, функция forp_json_google_tracer() которая позволяет сохранять полученный стек в файл в формате Google Trace Event .nnПример использования:n

// Start profilernforp_start();nmy_complex_function();n// Stop profilernforp_end();n// Get JSON and save it into filenforp_json_google_tracer("/tmp/output.json");

Для просмотра результата достаточно открыть Google Chrome и перейти на chrome://tracing/ .В открывшемся окне необходимо загрузить полученный файл и наслаждаться результатом.отслеживание работы php скриптовnnFORP предоставляет достаточно простую структуру, поэтому создать собственный интерфейс для удобного отображения данных не составит большого труда. Но если нужен интерфейс с богатым функционалом, то разработчик предлагает JavaScript клиент.nnДля работы FORP потребуется php5.nnДля установки используйте последний стабильный релиз, например:n

wget https://github.com/aterrien/forp/archive/1.1.0.tar.gznntar -xvzf 1.1.0.tar.gznncd 1.1.0/ext/forp

Скомпилируйтеn

phpizenn./configurennmake && make install

и включите расширение FORP в php.inin

extension=forp.so

Как применять решение – решать уже Вам. Можно установить на тестовую версию Вашего проекта и оценивать результаты пропорционально относительно разницы задержек тестовой и продуктивной среды. Можно попробовать посмотреть на параметры приложения в продуктивной среде, но в таком случае нужно понимать, что дамп заполнится достаточно быстро и в дальнейшем могут быть проблемы с анализом полученных данных. В прочем, если подойти к вопросу с умом, то можно получить достаточно достоверные цифры и сделать правильные выводы.n

Нужна помощь в установки профайлера php обращайтесь, [email protected]