Установите расширение xhprof.
wget http://pecl.php.net/get/xhprof-0.9.4.tgz
tar zxf xhprof-0.9.4.tgz
cd xhprof-0.9.4/extension/
sudo phpize
./configure
sudo make
sudo make install
cd ../
скопировать код
настроить php.ini
[xhprof]
extension=xhprof.so
xhprof.output_dir=/tmp
скопировать код
Примечание: xhprof давно не обновлялся, пока не поддерживает php7, можно использовать php7GitHub.com/poofhazri-same/small….
Настройте среду xhprof
Вам необходимо скопировать два каталога в сжатом пакете xhprof в указанный каталог (при условии, что определение/work/xhprof/
):
mkdir /work/xhprof/
cp -a xhprof_html/ /work/xhprof/
cp -a xhprof_lib/ /work/xhprof/
скопировать код
Затем добавьте в файл входа в рамках проекта:
xhprof_enable(XHPROF_FLAGS_MEMORY | XHPROF_FLAGS_CPU);
register_shutdown_function(function() {
$xhprof_data = xhprof_disable();
if (function_exists('fastcgi_finish_request')){
fastcgi_finish_request();
}
include_once "/work/xhprof/xhprof_lib/utils/xhprof_lib.php";
include_once "/work/xhprof/xhprof_lib/utils/xhprof_runs.php";
$xhprof_runs = new XHProfRuns_Default();
$run_id = $xhprof_runs->save_run($xhprof_data, 'xhprof');
});
скопировать код
Анализ кода:
$xhprof_data
Он записывает все время вызова функций и потребление памяти ЦП во время работы программы.В частности, какие показатели могут контролироваться параметрами xhprof_enable.В настоящее время поддерживаются следующие параметры:
-
HPROF_FLAGS_NO_BUILTINS
Все встроенные (внутренние) функции пропускаются. -
XHPROF_FLAGS_CPU
Добавьте данные ЦП к выходным данным о производительности. -
XHPROF_FLAGS_MEMORY
Добавьте данные памяти к выходным данным о производительности.
Последующая обработка не имеет ничего общего с расширением xhprof, грубо написав класс храненияXHProfRuns_Default
,Буду$xhprof_data
Сериализировать и сохранить в каталог, к которому можно получить доступ черезXHProfRuns_Default(__DIR__)
вывести результат в текущий каталог или прочитать, если не указаноphp.ini
в файле конфигурацииxhprof.output_dir
, еще не указанный, он будет выводиться в/tmp
.
xhprof_enable
а такжеxhprof_disable
Он идет парами, один — это начало кода для запуска, а другой — последний. В середине находится код для анализа.
После вышеописанной настройки мы впоследствии будем запрашивать интерфейс проекта, а xhprof будет анализировать ЦП, память, потребление времени и т. д. в процессе запроса. журнал хранится вxhprof.output_dir
содержание.
настроить веб
Настроил, как посмотреть лог? Мы можем создать простой веб-сервер:
xhprof.test.com.conf
server {
listen 80;
server_name xhprof.test.com;
root /work/xhprof/xhprof_html;
index index.html index.php;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
скопировать код
Затем настройте виртуальный хост xhprof.test.com. Перезапустите nginx и откройте xhprof.test.com, чтобы увидеть результат:
Список пользовательского интерфейса по умолчанию:
- имя функции : имя функции
- звонки: количество звонков
- Включая Wall Time (микросекунды): время выполнения функции (включая подфункции)
- IWall%: доля времени выполнения функции (включая подфункции).
- Excl Wall Time (микросекунды): время работы функции (исключая подфункции)
- EWall%: время выполнения функции (исключая подфункции)
Вы также можете увидеть ссылку [View Full Callgraph] в Интернете.После нажатия вы можете нарисовать график визуального анализа производительности.Если после нажатия сообщается об ошибке, это может быть отсутствие зависимости от graphviz. graphviz — это инструмент для рисования графиков, который позволяет более интуитивно просматривать узкие места в производительности. Установить при необходимости:
yum install -y libpng
yum install -y graphviz
скопировать код
Эффект:
Ненавязчивое введение xhprof
Ранее мы реализовали функцию анализа, добавив код в файл записи проекта. Более элегантный способ — создать дополнительный файл xhprof.inc.php и сохранить его в/work/xhprof/
Под содержанием:
xhprof_enable(XHPROF_FLAGS_MEMORY | XHPROF_FLAGS_CPU);
register_shutdown_function(function() {
$xhprof_data = xhprof_disable();
if (function_exists('fastcgi_finish_request')){
fastcgi_finish_request();
}
include_once "/work/xhprof/xhprof_lib/utils/xhprof_lib.php";
include_once "/work/xhprof/xhprof_lib/utils/xhprof_runs.php";
$xhprof_runs = new XHProfRuns_Default();
$run_id = $xhprof_runs->save_run($xhprof_data, 'xhprof');
});
скопировать код
Используйте функцию автозагрузки PHP, чтобы внедрить этот файл перед выполнением кода, отредактируйте php.ini:
auto_prepend_file = /work/xhprof/xhprof.inc.php
скопировать код
Затем перезапустите службу PHP. Таким образом, все, что использует среду php, вступит в силу.
Или пропишите в конфигурацию nginx указанного проекта: jifen.cc.conf
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PHP_VALUE "auto_prepend_file=/work/xhprof/xhprof.inc.php";
include fastcgi_params;
}
скопировать код
Затем перезапустите службу nginx. Это вступит в силу только для этого элемента.
Файлы, включенные через auto_prepend_file и auto_append_file, анализируются в этом режиме с некоторыми ограничениями, такими как функции, которые должны быть определены перед вызовом.
Изменить частоту дискретизации
По умолчанию xhprof будет запускаться каждый раз, если онлайн-среда настроена таким образом, это повлияет на производительность.
xhprof.inc.php
<?php
$profiling = !(mt_rand()%9);
if($profiling) xhprof_enable(XHPROF_FLAGS_MEMORY | XHPROF_FLAGS_CPU);
register_shutdown_function(function() use($profiling) {
if($profiling){
$xhprof_data = xhprof_disable();
if (function_exists('fastcgi_finish_request')){
fastcgi_finish_request();
}
include_once "/work/xhprof/xhprof_lib/utils/xhprof_lib.php";
include_once "/work/xhprof/xhprof_lib/utils/xhprof_runs.php";
$xhprof_runs = new XHProfRuns_Default();
$xhprof_runs->save_run($xhprof_data, 'xhprof');
}
});
скопировать код
Суммировать
В этой статье мы расскажем, как анализировать производительность PHP на основе расширения xhprof, записывать ее в журнал и, наконец, отображать в Интернете с помощью пользовательского интерфейса, поставляемого с расширением xhprof. Основные точки знаний:
- Установите расширение xhprof.
- Внедрить xhprof в приложение
- Отображение результатов анализа на основе nginx
Ссылаться на
1. Настройка и использование Xhprof — краткая книга
у-у-у. Краткое описание.com/afraid/38 ой 3 ой ой 819…
2. Используйте XHProf, чтобы найти узкие места в производительности PHP Develop Paper
сегмент fault.com/ah/119000000…
3. Установка и использование инструмента отслеживания и анализа производительности PHP xhprof Develop Paper
сегмент fault.com/ah/119000000…
4. Tideways и xhgui создают PHP-платформу для неинтрузивного мониторинга | Я большой медведь
blog.IT2048.Талант/статья- Упоминания…
Заявление об авторских правах: Перепечатка или специальное заявление не указываются как оригинальная работа автора. В этой статье используется следующее соглашение для авторизации,Бесплатная перепечатка — некоммерческая — не производная — сохранить авторство | Creative Commons BY-NC-ND 3.0, просьба указывать автора и источник при перепечатке.
Автор: Feihongying~
Источник:http://52fhy.cnblogs.com/
рекомендовать! Всего за 2,50 доллара в месяц вы можете получить VPS с SSD!