安装
下载/解压
下载地址:
http://pecl.php.net/package/xhprof
cd /data/soft
wget http://pecl.php.net/get/xhprof-0.9.4.tgz
tar -zxf xhprof-0.9.4.tgz
编译/安装
cd xhprof-0.9.4
cd extension/
phpize
./configure --with-php-config=/usr/local/php/bin/php-config
#上面的路径是自己本机PHP的配置文件路径
make && make install
#此处完成后会显示出 xhprof.so 所在的路径,将该文件复制到PHP扩展的目录
cp /data/soft/xhprof-0.9.4/extension/modules/xhprof.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/
这里的目标地址是 php.ini 中 extension_dir 的值。如果 php.ini 中没有 extension_dir 这一项,自己添加到并配置一个目录,然后将 .so 文件复制到其中。
建立分析结果导出目录:
mkdir -p /data/xhprof/xhprof_data
在 php.ini 中添加如下行:
[xhprof]
xhprof.output_dir = /data/xhprof/xhprof_data
extension = xhprof.so
mkdir -p /usr/local/php/include/xhprof/
在 php-fpm.conf 中添加:
env[XHPROF_ROOT_PATH] = /usr/local/php/include/xhprof/
#后面在PHP代码中可以通过 $_SERVER['XHPROF_ROOT_PATH'] 来引用,比较方便。
将 xhprof 解压目录下的 xhprof_lib 复制到上面目录中.此步目的是以后在程序中引用里面的类库时更方便,如果不执行该步也可以。
cp -r /data/soft/xhprof-0.9.4/xhprof_lib/ /usr/local/php/include/xhprof/xhprof_lib
yum install -y graphviz
#安装图形绘制工具,后面的结果可以通过该工具以图形显示,更直观
查看安装结果
重新加载 php 配置文件
service php-fpm reload
在 WEB 页面上查看 phpinfo 或者在命令行中执行:
php -i | grep xhprof
结果:
xhprof
xhprof => 0.9.2
分析结果查看配置
cp -r /data/soft/xhprof-0.9.4/xhprof_html/ /home/wwwroot/default/xhprof_html
#将 xhprof 自带的结果查看页面复制到本机器的WEB目录下
cp -r /data/soft/xhprof-0.9.4/xhprof_lib/ /home/wwwroot/default/xhprof_lib
#由于显示结果也用到了 xhprof_lib 里的类库,且里面的代码是按相对路径引用的,所以先直接把该库和页面放在一起
使用
在 PHP 页面顶部加上:
xhprof_enable(XHPROF_FLAGS_NO_BUILTINS + XHPROF_FLAGS_MEMORY);
在页面底部加上:
$xhprof_data = xhprof_disable();
include_once $_SERVER['XHPROF_ROOT_PATH'] . "/xhprof_lib/utils/xhprof_lib.php";
include_once $_SERVER['XHPROF_ROOT_PATH'] . "/xhprof_lib/utils/xhprof_runs.php";
$xhprof_runs = new XHProfRuns_Default();
//数据会保存在php.ini中xhprof.output_dir设置的目录去中
$run_id = $xhprof_runs->save_run($xhprof_data, str_replace(".", "_", basename(__FILE__)));
//第二个参数是定义文件名称
分析结果
访问上面的页面后,在结果目录发现有如下文件产生:
ls -l /data/xhprof/xhprof_data/
总用量 32
-rw-r--r-- 1 www www 16080 12月 4 21:24 548060a27725b.co_main_php.xhprof
-rw-r--r-- 1 www www 16076 12月 4 21:24 548060a2c49f7.co_main_php.xhprof
请求页面:
http://yourdomain/xhprof_html/index.php
页面结果:
No XHProf runs specified in the URL.
Existing runs:
548060a2c49f7.co_main_php.xhprof 2014-12-04 21:24:50
548060a27725b.co_main_php.xhprof 2014-12-04 21:24:50
即上面显示的生成的结果文件。
点击一个文件查看详细结果,得到:
转自:http://blog.sina.com.cn/s/blog_5f54f0be0102v995.html