使用PHP性能分析工具-Xhprof

Xhprof是一个轻量级的分层性能测量分析器。在数据收集阶段,它跟踪调用次数与测量数据,展示程序动态调用的弧线图。 它在报告、后期处理阶段计算了独占的性能度量,例如运行经过的时间、CPU 计算时间和内存开销。

Xhprof包含了一个基于 HTML 的简单用户界面(由 PHP 写成),可以方便地浏览性能分析报告,这对理解代码执行结构常常很有帮助。

一、安装

Xhprof是PHP的一个扩展,所以只需要按照PHP扩展的编译安装方法来安装即可。

1、下载扩展包

支持PHP 7+的Xhprof扩展包:https://github.com/longxinH/xhprof

wget https://github.com/longxinH/xhprof/archive/v2.0.5.tar.gz

2、解压编译

PHP扩展编译三部曲:phpizeconfiguremake

$ tar xzf xhprof-2.0.5.tar.gz
$ cd xhprof-2.0.5/extension
$ /usr/local/services/php7/bin/phpize
$ ./configure --prefix=/usr/local/services/php7/lib/php/extensions/no-debug-zts-20160303 --with-php-config=/usr/local/services/php7/bin/php-config
$ make

然后就可以在当前的modules目录下看到编译生成的so文件,将它拷贝到扩展目录。

注:安装autoconf库:yum -y install autoconf

3、配置php.ini

在php的配置文件中添加两行配置,并重启php-fpm:

extension=xhprof.so
xhprof.output_dir=/data/release/xhprof_project/output

其中xhprof.output_dir用于指定存储xhprof分析数据的目录。

二、创建Xhprof项目

1、创建目录

mkdir /data/release/xhprof_project

2、将相关文件拷贝到目录下

cp -r /data/software/xhprof-2.0.5/xhprof_html /data/release/xhprof_project/
cp -r /data/software/xhprof-2.0.5/xhprof_lib /data/release/xhprof_project/

3、添加nginx访问配置

server {
        listen  80;
        server_name xhprof.report.com;
        root /data/release/xhprof_project/xhprof_html;
        index index.php index.html;

        location ~* \.php$ {
                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_pass  127.0.0.1:9000;
                fastcgi_index index.php;
        }
}

三、使用范例

在PHP脚本中使用的模式如下:

<?php

// 开始分析
xhprof_enable();

// 你的代码

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

// 导入两个库文件
$XHPROF_ROOT = "/data/release/xhprof_project";
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();
$run_id = $xhprof_runs-
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值