1.安装扩展
拉取文件并编译安装部署
cd /home/software/ //选取一个目录,自己用的/home/software
git clone https://github.com/longxinH/xhprof //可自己下载安装包解压,pecl网站地址 http://pecl.php.net/package/xhprof
cd xhprof/extension/
/usr/local/php/bin/phpize //运行php安装目录下的phpize文件,这时候会在extension目录下生成相应的configure文件
./configure --with-php-config=/usr/local/php/bin/php-config //在编译php扩展时,使用该命令用于指定php-config的路径。php安装完后在bin目录下有个php-config,php-config是一个脚本文件。用于获取所安装的php配置的信息。运行配置,如果你的服务器上只是装了一个版本的php则不需要添加--with-php-config 。后面的参数只是为了告诉phpize要建立基于哪个版本的扩展。
make
make install
配置php.ini 重启 php
/home/data/xhprofile 为自己选定存放生成的xhprof格式文件的存放位置
service php-fpm restart 重启php服务,任意方式重启即可
重启后查看phpinfo 是否已成功加载xhporf扩展,显示下图的模块表示扩展安装成功
2.安装绘图工具
centos
wget http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.24.0.tar.gz
cd graphviz-2.24.0
./configure
make&&makeinstall
或者使用yum安装
yum install libpng
yum install graphviz
ubuntu
sudo apt-getinstall graphviz
3.编辑代码生成xhprof绘图文件
以yaf框架为例,将实际运行项目的启动和调用夹在 xhprof的运行停止之间,分析总体结果生成文件,具体可根据情况添加
生成的文件地址在php.ini中配置的地址下:
4.配置nginx 访问域名
在配置nginx之前首先需要知道xhprof的显示视图文件的位置
在安装的xhprof目录下,有两个主目录,xhprof_lib主要是类库生成分析视图文件,xhprof_html主要是用来显示分析视图
配置nginx的虚拟主机,域名和端口可自己设置,index 为默认访问文件,root为访问的资源目录
配置完成后,重启nginx服务,或者也可以平滑升级
5.配置host地址显示视图和分析视图
ip地址 xhp.com
访问nginx配置的域名
访问目录后会显示,生成分析文件,然后点击文件
表格的列名含义分别为:
点击[View Full Callgraph]查看视图,显示红色部分为主要耗时代码,即可根据分析结果对相应的代码进行优化
浅析:
通过以上安装和使用步骤,其实很明显的可以分析出,xhporf是先使用xhprof_lib下类库文件(按照php.ini文件指定的目录)生成了绘图语法格式的文件,然后使用xhporf_html下php文件的读取文件,显示对应的视图分析结果。1、2、3步骤为文件安装部署和文件生成过程,4、5步骤为文件视图查看过程。