Linux环境下面安装PHP性能分析工具XHProf

Linux环境下面安装PHP性能分析工具XHProf      XHProf是一个分层PHP性能分析工具。它报告函数级别的请求次数和各种指标,包括阻塞时间,CPU时间和内存使用情况。一个函数的开销,可细分成调用者和被调用者的开销,XHProf数据收集阶段,它记录调用次数的追踪和包容性的指标弧在动态callgraph的一个程序。它独有的数据计算的报告/后处理阶段。

      在数据收集时,XHProfd通过检测循环来处理递归的函数调用,并通过给递归调用中每个深度的调用一个有用的命名来避开死循环。XHProf分析报告有助于理解被执行的代码的结构,其目录结构中自带有一个由PHP编写的浏览界面,便于用户直观的查看请求占用性能情况。在graphviz插件的辅助下,也能绘制清晰调用关系图。XHProf已经广泛的应用于各大PHP开发的系统中。

安装XHprof
Linux环境下面安装PHP性能分析工具XHProf
1、安装PHP扩展,XHProf的官方下载地址为

http://pecl.php.net/package/xhprof,默认的PHP没有自带这个扩展,所以要进行安装。

Linux环境下面安装PHP性能分析工具XHProf
Linux环境下面安装PHP性能分析工具XHProf
Linux环境下面安装PHP性能分析工具XHProf
wget http://pecl.php.net/get/xhprof-0.9.3.tgz #获取安装包

tar zxf xhprof-0.9.3.tgz  #解压安装包

cd xhprof-0.9.3  #进入文件夹

cp -r xhprof_html xhprof_lib /data/xhprof #根据具体情况进行拷贝

cd extension

phpize  #phpize侦测PHP安装环境

./configure

make

make install

备注:xhprof_html中存放分析结果项目,用来展示性能分析,需要将文件夹放到apache的项目目录下面才能运行访问 ;xhprof_lib作为三方库,用于引入到PHP项目中。

2、配置php.ini支持XHProf,如果不知道php.ini在哪里,可以使用命令find / -name php.ini。

Linux环境下面安装PHP性能分析工具XHProf
Linux环境下面安装PHP性能分析工具XHProf
Linux环境下面安装PHP性能分析工具XHProf
[xhprof]

extension=xhprof.so

;

; directory used by default implementation of the iXHProfRuns

; interface (namely, the XHProfRuns_Default class) for storing

; XHProf runs.

;

xhprof.output_dir=/data/xhprof/logs #根据实际情况进行配置

配置成功后,重启apache,使用service apache restart 或者service httpd restart等相关命令,如果phpinfo()出现如下页面,表示安装成功。

Linux环境下面安装PHP性能分析工具XHProf

3、 安装Graphviz,安装Graphviz的目的是为了xhprof图形化web工具查看profiling log文件。

Linux环境下面安装PHP性能分析工具XHProf
Linux环境下面安装PHP性能分析工具XHProf
Linux环境下面安装PHP性能分析工具XHProf
方式1:

wget http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.24.0.tar.gz

tar zxf graphviz-2.24.0.tar.gz

cd graphviz-2.24.0

./configure

make

make install

如果找不到对应的资源可以使用这个链接https://graphviz.gitlab.io/pub/graphviz/stable/SOURCES/graphviz.tar.gz。

方式2:使用命令 yum install graphviz 直接安装。

4.、安装libpng(可能需要的步骤)

编译graphviz提示信息png: No (missing png.h),也就是dot 不支持PNG,此时需要安装libpng包。

Linux环境下面安装PHP性能分析工具XHProf
Linux环境下面安装PHP性能分析工具XHProf
Linux环境下面安装PHP性能分析工具XHProf
wget http://nchc.dl.sourceforge.net/project/libpng/libpng15/1.5.1/libpng-1.5.1.tar.gz

tar zxf libpng-1.5.1.tar.gz

cd libpng-1.5.1

./configure

make

make install

或者使用命令yum install libpng直接进行安装。

开始进行性能分析
Linux环境下面安装PHP性能分析工具XHProf
1、 创建一个文件test.php,然后按照下面的模式进行编码。

Linux环境下面安装PHP性能分析工具XHProf
Linux环境下面安装PHP性能分析工具XHProf
Linux环境下面安装PHP性能分析工具XHProf
<?php

// start profiling

xhprof_enable();

// xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY); // 允许CPU和内存输出

// run program

….

// stop profiler

$xhprof_data = xhprof_disable();

//

// Saving the XHProf run

// using the default implementation of iXHProfRuns.

//

$XHPROF_ROOT = “/projects/xhprof”;//这里填写的就是你的xhprof的路径

include_once $XHPROF_ROOT . “/xhprof_lib/utils/xhprof_lib.php”;

include_once $XHPROF_ROOT . “/xhprof_lib/utils/xhprof_runs.php”;

$xhprof_runs = new XHProfRuns_Default();

// Save the run under a namespace “xhprof_foo”.

//

// **NOTE**:

// By default save_run() will automatically generate a unique

// run id for you. [You can override that behavior by passing

// a run id (optional arg) to the save_run() method instead.]

//

$run_id = $xhprof_runs->save_run($xhprof_data, “xhprof_foo”);

echo “—————n”.

“Assuming you have set up the http based UI for n”.

“XHProf at some address, you can view run at n”.

“http://<xhprof-ui-address>/index.php?run=$run_id&source=xhprof_foon”.

“—————n”;

?>

2、查看分析报告

Linux环境下面安装PHP性能分析工具XHProf
Linux环境下面安装PHP性能分析工具XHProf
Linux环境下面安装PHP性能分析工具XHProf

在浏览器中访问该页面后,会在/data/xhprof/logs这个目录下面生成一个.xhprof_foo结尾的文件,然后会在页面上显示http://<xhprof-ui-address>/index.php?run=49bafaa3a3f66&source=xhprof_foo 这句代码,然后访问上面说到的展示目录http://xxx/xhprof_html/index.php?run=49bafaa3a3f66&source=xhprof_foo就可以看到内容了。

Linux环境下面安装PHP性能分析工具XHProf

3、查看函数调用图,然后点击[View Full Callgraph],就可以看到详细的函数调用过程。

Linux环境下面安装PHP性能分析工具XHProf

问题总结
Linux环境下面安装PHP性能分析工具XHProf
1、 编译XHProf扩展不通过,由于之前使用的xhprof-0.9.2版本,这个版本是09年的,比较老,换成xhprof-0.9.3就可以编译通过了。

2、 放在PHP里面后,出现了报错,将启动改为下面的代码就好了。

Linux环境下面安装PHP性能分析工具XHProf
Linux环境下面安装PHP性能分析工具XHProf
Linux环境下面安装PHP性能分析工具XHProf
xhprof_enable(XHPROF_FLAGS_NO_BUILTINS | XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY);

3、点击[View Full Callgraph]出现了。以为是没有安装好graphviz,结果是由于没有找到日志文件,请仔细读懂下面语句的意思。

Linux环境下面安装PHP性能分析工具XHProf
Linux环境下面安装PHP性能分析工具XHProf
Linux环境下面安装PHP性能分析工具XHProf
Error: either we can not find profile data for run_id 4d7f0bd99a12f or the threshold 0.01 is too small or you do not have ‘dot’ image generation utility installed. 

4、 由于安装了两个版本的graphviz,手动安装的版本没有安装好png支持,老是出现不支持png的提示,然后卸载掉这个手动版本就可以了,具体做法是cd到安装目录,执行make uninstall。

附录
Linux环境下面安装PHP性能分析工具XHProf

XHProf报告字段含义:

Linux环境下面安装PHP性能分析工具XHProf

未经允许不得转载:PHP100中文网 - 中国第一档PHP资源分享门户 » Linux环境下面安装PHP性能分析工具XHProf

赞 (0) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏