PHP性能分析工具xhprof

作者: Darren 分类: php 发布时间: 2019-09-11 21:06

这个是我研究两天的积蓄,说真的贼累,系统了重装了好几次.由于嫌麻烦就用宝塔一键端了,反正就是测试

是干什么的,自己百度,或者直通车,Xhprof,

用到环境:

1.宝塔,一键端,apche+php7.1还有mysql,一键端

2.环境为centos7.4 腾讯云 1H2G 1M 学生机

一切准备就绪,就开始

1.安装宝塔,官网下载,中间有提示选择-y,直到安装完成

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

2.登录宝塔会提示,让你选择,lamp与lnmp,选择lamp版本,将php换成7.1

 

3.从github克隆一个xhprof,

git clone https://github.com/darren2025/xhprof.git

如果没有安装git,执行如下命令

yum  -y install git

4.一般登录ssh都会默认到root,这里文件会在root下,所以现在进去这个文件夹

cd ./xhprof/extension/

5.找到php扩展文件,我也不知道,所以用find找了一下

find / -name phpize -type f  #不知道的也可以找一下,知道就免了这步
/www/server/php/71/bin/phpize 复制,然后执行

%title插图%num

6.找到php-config这个配置文件,我也知道,所以找了一下

/www/server/php/71/bin/php-config #不知道找一下,知道就不用了

./configure --with-php-config=/www/server/php/71/bin/php-config #配置一下

7.完成后,进行配置

make && sudo make install

%title插图%num

存好箭头这个路径

 

8.然后在你网站与index.php(入口文件)同级下创建一个目录xhprof,用来存放都时候分析的文件的

mkdir -p /www/wwwroot/tp.321dz.com/public/xhprof #我这里网站是放在这里

%title插图%num

9.找到php.ini配置文件 ,(这里怕有些小白不懂,还是用find吧)

%title插图%num

 

10.编辑文件

vim /www/server/php/71/etc/php.ini #进去后开大写,按2次GG,调到最后一行,在空白处,按i进去,添加

11.添加以下内容

[xhprof]
extension = /www/server/php/71/lib/php/extensions/no-debug-non-zts-20160303/xhprof.so  #第7步箭头的路径加上这个xhprof.so文件
xhprof.output_dir= /www/wwwroot/tp.321dz.com/public/xhprof #第8步创建的网站路径

%title插图%num

 

12.给目录写入与读取与执行权限

chmod 777 /www/wwwroot/tp.321dz.com/public/xhprof

13.重启php,与apche

/etc/init.d/php-fpm-{52|53|54|55|56|70|71} restart  #重启php,这里什么版本就用什么数字
service httpd restart #重启apche

14.查看xhprof是否安装成功,如果这里有出现,截图如下,那么恭喜你,如果没有,那么重来吧!

php -m | grep xhprof   #这两个都可以
php -i | grep xhprof     #这两个都可以

 

%title插图%num

15.开启,被宝塔禁用的函数

因为proc_open函数被宝塔php禁用了,但是这个又需要,所以需要打开

宝塔面板在:软件管理 —->  php7.1—->设置 —> 禁用函数,将proc_open删除即可。

16.再次进入root,再次进入xhprof

 cd /root/xhprof/

17.复制里面这三个文件,一个是类文件,一个是演示文件,一个图形展示的, 如果你网站路径与我的不同,那么请相应更改

cp examples /www/wwwroot/tp.321dz.com/public/  -rp
cp xhprof_html /www/wwwroot/tp.321dz.com/public/  -rp
cp xhprof_lib /www/wwwroot/tp.321dz.com/public/  -rp

18.接下来,打开入口文件index.php,这个是我结合官网的demo写的,当然你有能力,可以自己改进以下,demo在/www/wwwroot/tp.321dz.com/public/examples/sample.php 这个文件里面

在头部,添加

xhprof_enable();  开始地方

尾部,添加以下:

// stop profiler  //停止分析器
$xhprof_data = xhprof_disable();

include_once  "./xhprof_lib/utils/xhprof_lib.php";
include_once  "./xhprof_lib/utils/xhprof_runs.php";

$xhprof_runs = new XHProfRuns_Default();

$run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_foo");
// 将数据,写入到本地,文本文件
// 取得当前访问的域名
$host = $_SERVER['HTTP_HOST'];
// 将数据,写入到本地,文本文件
file_put_contents('./1.txt', "http://$host/xhprof_html/index.php?run=$run_id&source=xhprof_foo\n");

这个是我的thinkphp测试的

%title插图%num

19.最后访问正常访问网站,会在网站根目录下,生成一个1.txt文件,通过访问会得到一个新的地址,这个地址就是分析报告的地址

http://tp.321dz.com/1.txt  #中间的tp.321dz.com替换你的域名

20.在这里,能看整个框架被加载的过程,以及每个方法占用的资源系统的相关的比例,当然,你也可以点击[View Full Callgraph]获取执行流程图

 

%title插图%num

%title插图%num

21.最后测试完成后,就可以清理了,这里汇总了一下

测试过完,清理如下:
index.php,里面添加的代码
删除 examples xhprof  xhprof_html xhprof_lib
删除1.txt文件
删除 php.ini里面的当初加的两行
删除/root/xhprof里面内容

码字2小时,很累,如果有转载,请注明出处,谢谢,

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

发表回复

您的电子邮箱地址不会被公开。