xhprof的配置及使用

介绍

xhprof是一款facebook 开源的函数级别的非侵入式php性能分析工具。
它报告函数级别的请求次数和各种指标,包括阻塞时间,CPU时间和内存使用情况。

相关链接:
http://pecl.php.net/package/xhprof
https://www.php.net/manual/zh/book.xhprof.php

安装

由于xhprof很久未更新,目前原版本只支持php5。
若要在php7上安装xhprof,需要使用他人修改的repo。
放上github仓库地址:https://github.com/longxinH/xhprof

git clone https://github.com/longxinH/xhprof.git
cd xhprof/extension/
/path/to/php7/bin/phpize #phpize地址
./configure --with-php-config=/path/to/php7/bin/php-config
make && sudo make install
xhprof/extension/modules/xhprof.so #文件地址

重启php-fpm
找到php.ini文件,添加xhprof扩展

[xhprof]
extension = xhprof.so
xhprof.output_dir = /tmp/xhprof

这里的xhprof文件目录最好设置为777权限,否则运行时会出错。
配置成功以后,将xhprof文件下的xhprof_html和xhprof_lib复制到网站根目录(若已存在请忽略)。

使用方法

将需要检查性能的代码包裹起来,如下:

save_run($xhprof_data, 'your_project');

查看性能分析

在浏览器中打开http://localhost/xhprof/xhprof_html/index.php页面。
选择查看的文件,即可查看。

为了方便我们更好的查看性能分析,可以添加图形化支持。
安装graphviz

sudo yum install graphviz # centos
sudo apt-get install graphviz #ubuntu

注意,此时需要在php.ini中的禁用函数中移除proc_open函数。
然后点击[View Full Callgraph]进入图形化查看界面,即可查看。

xhprof字段解释

Function Name:函数名
Calls:调用次数
Calls%:方法调用次数在同级方法总调用次数的百分比
Incl.Wall Time(microsec):方法执行花费的时间,包括子方法的执行时间(微秒)
IWall%:方法执行花费的时间百分比
Excl. Wall Time(microsec):方法本身执行花费的时间,不包括子方法的执行时间(微秒)
EWall%:方法本身执行花费的时间百分比

你可能感兴趣的:(xhprof的配置及使用)