xhprof是php的一个性能分析扩展,它可以帮助我们查看php执行情况,有助于我们优化php的执行语句.
安装
xhprof的开源地址为:https://github.com/longxinH/xhprof
版本下载地址:https://github.com/longxinH/xhprof/releases
安装命令:
wget https://github.com/longxinH/xhprof/archive/v2.1.0.tar.gz tar -zvxf v2.1.0.tar.gz cd xhprof-2.1.0/ cd extension/ phpize ./configure --with-php-config=/www/server/php/72/bin/php-config make && make install
在php.ini增加配置
\[xhprof\] extension=xhprof.so; xhprof.output_dir=/tmp/xhprof
说明
./configure 不一定需要增加--with-php-config,只有当服务器有多个版本或者php-config没有在/usr/bin的时候才需要
xhprof的output_dir配置项需要可读可写权限,可以自己设定
使用
测试类引入:
还记得之前下载的源码吗?把里面的xhprof_lib目录复制出来,复制到项目目录,并且引入:
include\_once '/home/tioncico/www/xhprof/xhprof\_lib/utils/xhprof_lib.php'; include\_once '/home/tioncico/www/xhprof/xhprof\_lib/utils/xhprof_runs.php';
开启性能分析:xhprof_enable函数
xhprof\_enable(XHPROF\_FLAGS\_CPU|XHPROF\_FLAGS\_MEMORY|XHPROF\_FLAGS\_NO\_BUILTINS); //XHPROF\_FLAGS\_NO_BUILTINS (integer) //使得跳过所有内置(内部)函数。 //XHPROF\_FLAGS\_CPU (integer) //使输出的性能数据中添加 CPU 数据。 //XHPROF\_FLAGS\_MEMORY (integer) //使输出的性能数据中添加内存数据。
开启性能分析之后,php的代码都会被监控,进行分析运行状态
关闭性能分析
$xhprof\_data = xhprof\_disable();//关闭性能分析 $xhprof\_runs = new \\XHProfRuns\_Default(); $run\_id = $xhprof\_runs->save\_run($xhprof\_data, 'your\_project');//把性能分析的报告保存到output\_dir目录
查看性能分析:
还记得之前下载的源码吗?把里面的xhprof_html目录复制出来,单独做成一个目录,并且通过nginx或者apache配置成一个可访问的php站点:
并且把之前的xhprof_lib复制一份到同级目录:
访问这个站点:
点击查看:
这样,就可以查看到所有代码执行的cpu消耗,执行时间,占用情况了,根据这份数据,去优化最耗时间的代码即可
点击
可查看流程图: