Профилирование 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/ .В открывшемся окне необходимо загрузить полученный файл и наслаждаться результатом.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]