php轻量级的质量分析工具xhprof的装置使用,xhprof扩大安装与使用

目录

一、xhprof扩张安装步骤

xhprof是PHP的一个伸张,最好也一贯设置上graphviz图形绘制工具(用于xhprof分析结果以直观的图纸格局浮现),废话不多说,直奔主旨。

正文实例分析了PHP质量测试工具xhprof安装与行使办法。分享给大家供大家参考,具体如下:

一、前言

  • 一、xhprof伸张安装步骤
  • 二、xhprof的使用
  • 总结
  • 参考资料

1、安装

  • PHP5版本的设置

wget
tar -zxvf xhprof-0.9.4.tgz
cd xhprof-0.9.4
cd extension/
phpize
./configure
make
make install

  • PHP7版本的装置

unzip xhprof-php7.zip
cd xhprof-php7/extension/
phpize
./configure –with-php-config=/usr/local/php/bin/php-config
make
make install

xhprof概述:

  有用的事物如故记录下来吧,也便于将来的询问;本次记录一下xhprof的设置使用;

一、xhprof扩充安装步骤

xhprof是PHP的一个恢宏,最好也一贯设置上graphviz图形绘制工具(用于xhprof分析结果以直观的图片方式显示),废话不多说,直奔主旨。

2、修改php.ini配置文件

在php.ini配置文件中追加下边配置,并创立目录/home/wwwroot/default/xhprof_data

[xhprof]
extension = xhprof.so
// xhprof分析结果文件存放根目录
xhprof.output_php轻量级的质量分析工具xhprof的装置使用,xhprof扩大安装与使用。dir = /home/wwwroot/default/xhprof_data

XHProf是一个分层PHP品质分析工具。它报告函数级其他乞请次数和各样目标,包蕴阻塞时间,CPU时间和内存使用景况。一个函数的付出,可细分成调用者和被调用者的开发,XHProf数据搜集阶段,它记录调用次数的追踪和包容性的目标弧在动态callgraph的一个主次。它独有的数码总结的告诉/后甩卖阶段。在多少搜集时,XHProfd通过检测循环来处理递归的函数调用,并透过给递归调用中每个深度的调用一个卓有效用的命名来逃避死循环。XHProf分析报告有助于了然被实施的代码的构造,它有一个大概的HTML的用户界面(
PHP写成的)。基于浏览器的品质分析用户界面能更易于查看,或是与同行们分享收获。也能绘制调用关系图。

  xhprof是facebook开源出来的一个php轻量级的特性分析工具,跟Xdebug类似,但品质开支更低,

1、安装

  • PHP5版本的安装

wget http://pecl.php.net/get/xhprof-0.9.4.tgz
tar -zxvf xhprof-0.9.4.tgz 
cd xhprof-0.9.4
cd extension/
phpize
./configure
make
make install
  • PHP7版本的设置

    下载源码包xhprof:

unzip xhprof-php7.zip 
cd xhprof-php7/extension/
phpize 
./configure --with-php-config=/usr/local/php/bin/php-config 
make
make install

3、添加一个环境变量XHPROF_ROOT_PATH

为了中期每个品种都能利用xhprof来拓展质量分析,指出给PHP加一个环境变量,那样之后,在别的项目代码里都可以很有利的调用xhprof来分析品质瓶颈,请执行如下操作:

vim /usr/local/php/etc/php-fpm.conf
env[XHPROF_ROOT_PATH]=/usr/local/php/include/xhprof/

安装与应用:

  仍是可以用在生育条件中,也得以由程序开 关来控制是或不是举办profile。

2、修改php.ini配置文件

在php.ini配置文件中追加下边配置,并创建目录/home/wwwroot/default/xhprof_data

[xhprof]
extension = xhprof.so
// xhprof分析结果文件存放根目录
xhprof.output_dir = /home/wwwroot/default/xhprof_data

4、将xhprof大旨源代码复制到上述XHPROF_ROOT_PATHphp轻量级的质量分析工具xhprof的装置使用,xhprof扩大安装与使用。环境变量所指定的目录下

cp -r xhprof_lib /usr/local/php/include/xhprof/xhprof_lib

日前要做网站的品质对比,于是就找一款品质测试工作来娱乐,工具很多,但对照以前照旧觉得xhprof的装置和接纳相对来说不难点,数据解析也都还能,下边就说说它的安装和应用。。。

二、安装

3、添加一个环境变量XHPROF_ROOT_PATH

为了中期每个品种都能运用xhprof来进展品质分析,提议给PHP加一个环境变量,这样之后,在其余类型代码里都可以很有益的调用xhprof来分析品质瓶颈,请执行如下操作:

vim /usr/local/php/etc/php-fpm.conf
env[XHPROF_ROOT_PATH]=/usr/local/php/include/xhprof/

5、将上边三个目录复制到xhprof_data的同级目录下(最好都停放web根目录下)

翻看分析结果文件有用,如下图所示:

www.5929.com 1

//执行
cp -r xhprof_html /home/wwwroot/default/xhprof_html
cp -r xhprof_lib /home/wwwroot/default/xhprof_lib

//改变xhprof_data目录拥有者,为了浏览器访问时能在xhprof_data目录下写入文件
chown -R www:www xhprof_data

下载xhprof和graphviz

  wget http://pecl.php.net/get/xhprof-0.9.3.tgz 
  tar zxf xhprof-0.9.3.tgz 
  cd xhprof-0.9.3/extension
  /usr/bin/phpize 
 (php版本安装后生成的phpize文件,可根据phpinfo查看,所以php版本不同,生成的phpize也不同,此步骤主要生成configure文件)
  ./configure –with-php-config=/usr/bin/php-config 
 (php-config的路径,也是php安装后生成的文件) 
  make 
  sudo make install 

4、将xhprof焦点源代码复制到上述XHPROF_ROOT_PATH环境变量所指定的目录下

cp -r xhprof_lib /usr/local/php/include/xhprof/xhprof_lib

6、访问xhprof根目录

配置demo.com域名根目录为/home/wwwroot/default/,则可访问如下链接查看xhprof结果分析根目录,如下图所示:

www.5929.com 2

xhprof的话,直接去php官网就可以下载,为了有利于可以戳一下
这里

 (会自行将转移的扩大文件拷贝到增添目录中/usr/lib64/php/modules)

5、将上边四个目录复制到xhprof_data的同级目录下(最好都放置web根目录下)

翻开分析结果文件有用

//执行
cp -r xhprof_html /home/wwwroot/default/xhprof_html
cp -r xhprof_lib /home/wwwroot/default/xhprof_lib

//改变xhprof_data目录拥有者,为了浏览器访问时能在xhprof_data目录下写入文件
chown -R www:www xhprof_data

7、形象化的查看分析结果

设置图形绘制工具,后边的分析结果可以通过该工具以图表显示,更直观
实践安装命令:yum install graphviz

graphviz的话也要下载,重若是展现xhprof质量结果的图片报表,戳这里
这里

    当然具体的php文件的目录,每个人不完全一样,可根据phpinfo查询

6、访问xhprof根目录

配备demo.com域名根目录为/home/wwwroot/default/,则可访问如下链接查看xhprof结果分析根目录http://demo.com/xhprof_data/,如下图所示:

www.5929.com 3

二、xhprof的使用

编译安装xhprof

三、php.ini配置

7、形象化的查阅分析结果

安装图形绘制工具,前面的解析结果可以通过该工具以图纸显示,更直观
履行安装命令:yum install graphviz

1、xhprof品质分析小demo

上面写的二种情势贯彻阶乘的代码

<?php

xhprof_enable(XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY);

$n = 5;

echo jc($n);
echo ‘<br>’;

echo jc($n);
echo ‘<br>’;

echo jc($n);
echo ‘<br>’;

function jc($n){
    if($n == 1){
        return 1;
    }
   
    return $n * jc($n-1);
}

function jc2($n){
    $m = 1;
    for($i=1; $i<=$n; $i++){
        $m = $m * $i;
    }
   
    return $m;
}

function jc3($n){
    $arr = [];
    $arr[1] = 1;
   
    for($i = 2; $i<=$n; $i++){
        $arr[$i] = $i * $arr[$i-1];
    }
   
    return $arr[$n];
}

$data = xhprof_disable();
//$_SERVER[‘XHPROF_ROOT_PATH’] 那就是第三步添加的至极环境变量
include_once $_SERVER[‘XHPROF_ROOT_PATH’] .
“xhprof_lib/utils/xhprof_lib.php”;
include_once $_SERVER[‘XHPROF_ROOT_PATH’] .
“xhprof_lib/utils/xhprof_runs.php”;
$x = new XHProfRuns_Default();

//拼接文件名
$xhprofFilename = date(‘Ymd_His’);

//print_r($data);die;//此处的打印数据看起来卓殊不直观,所以要求安装yum
install graphviz 图形化界面突显,更直观
$x->save_run($data, $xhprofFilename);

上述小demo执行后,会在xhprof_data目录下生成一个分析结果保存文件,网页端访问结果文件,如下图:
www.5929.com 4

www.5929.com 5

当我在点[View Full Callgraph]查看图形分析界面时,难点出现了,如下图:
www.5929.com 6
好在网上查到原因是,php配置文件中有个disable_functions禁用函数列表,把其中的proc_open裁撤即可。

图表分析结果突显如下
www.5929.com 7

cd xhprof-0.9.4/xhprof-0.9.4/extension/
phpize
./configure
make
sudo make install

根据phpinfo找到 extension_dir的目录
(/etc/php.d/xhprof.ini)

二、xhprof的使用

2、实际项目中该怎么着引入xhprof

请参见如下截图所示引入思路(在项目控制器基类构造方法和析构方法里做小动作),思路技巧仅供就学参考,如下图:

www.5929.com 8
上边是自我在项目(以Yii2为框架)下引入xhprof代码一览

<?php
namespace backend\component;

use Yii;
use common\component\baseController;

class backendBaseController extends baseController
{
    public $layout = “/content”;
    public $enableCsrfValidation = false;

    public static $profiling = 0;

    public function init(){
        parent::init();
       
        self::$profiling = 1;// !(mt_rand() % 9);
        if  (self::$profiling) {
            xhprof_enable(XHPROF_FLAGS_CPU |
XHPROF_FLAGS_MEMORY);
        }
    }

    public function __destruct()
    {
        if(self::$profiling){
            $data = xhprof_disable();
            //$_SERVER[‘XHPROF_ROOT_PATH’] 该环境变量由第3步得来
            include_once $_SERVER[‘XHPROF_ROOT_PATH’] .
“/xhprof_lib/utils/xhprof_lib.php”;
            include_once $_SERVER[‘XHPROF_ROOT_PATH’] .
“/xhprof_lib/utils/xhprof_runs.php”;
            $x = new XHProfRuns_Default();

            //当前路由
            $routeName = Yii::$app->requestedRoute;
            //路由为空,则证实是首页
            if (empty($routeName)){
                $routeName = Yii::$app->defaultRoute;
            }

            //拼接xhprof分析结果保存文件名
            $xhprofFilename = str_replace(‘/’, ‘_’,
$routeName).’_’.date(‘Ymd_His’);
            $x->save_run($data, $xhprofFilename);
        }
    }
}

将扭转的xhprof.so文件加到php.ini文件中,然后重启apache了

累加一下内容:

1、xhprof质量分析小demo

上边写的三种方法完成阶乘的代码

<?php

xhprof_enable(XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY);

$n = 5;

echo jc($n);
echo '<br>';

echo jc($n);
echo '<br>';

echo jc($n);
echo '<br>';

function jc($n){
    if($n == 1){
        return 1;
    }

    return $n * jc($n-1);
}

function jc2($n){
    $m = 1;
    for($i=1; $i<=$n; $i++){
        $m = $m * $i;
    }

    return $m;
}

function jc3($n){
    $arr = [];
    $arr[1] = 1;

    for($i = 2; $i<=$n; $i++){
        $arr[$i] = $i * $arr[$i-1];
    }

    return $arr[$n];
}


$data = xhprof_disable();
//$_SERVER['XHPROF_ROOT_PATH'] 这就是第三步添加的那个环境变量
include_once $_SERVER['XHPROF_ROOT_PATH'] . "xhprof_lib/utils/xhprof_lib.php";
include_once $_SERVER['XHPROF_ROOT_PATH'] . "xhprof_lib/utils/xhprof_runs.php";
$x = new XHProfRuns_Default();

//拼接文件名
$xhprofFilename = date('Ymd_His');

//print_r($data);die;//此处的打印数据看起来非常不直观,所以需要安装yum install graphviz 图形化界面显示,更直观
$x->save_run($data, $xhprofFilename);

上述小demo执行后,会在xhprof_data目录下生成一个解析结果保存文件,网页端访问结果文件,如下图:
www.5929.com 9

www.5929.com 10

当自身在点[View Full Callgraph]翻看图形分析界面时,难题出现了,如下图:
www.5929.com 11
好在网上查到原因是,php配置文件中有个disable_functions禁用函数列表,把其中的proc_open清除即可。

图形分析结果显示如下
www.5929.com 12

总结

xhprof是一个分析PHP代码品质瓶颈,提升PHP代码效用的便宜工具,通过xhprof,可以观望代码慢在哪儿,哪儿还有优化的空中等等。

终极分享一个有关xhprof没错的素材,可以到Linux公社资源站下载:

——————————————分割线——————————————

免费下载地址在

用户名与密码都是www.linuxidc.com

切切实实下载目录在 /二〇一八年资料/六月/28日/xhprof扩充安装与利用/

下载格局见
http://www.linuxidc.com/Linux/2013-07/87684.htm

——————————————分割线——————————————

Linux公社的RSS地址:

本文永久更新链接地址

www.5929.com 13

...
#这里要使用相对路径加载的话首先要看一下extension_dir配置的路径,或者直接写上`.so`文件的绝对能够路径即可。。。
extension=xhprof.so
...
sudo apachectl restart
##测试扩展是否安装成功,有如下输出则ok
php --ri xhprof
...
 xhprof
 xhprof => 0.9.2
 CPU num => 4
...
extension=xhprof.so
xhprof.output_dir=/tmp/xhprof //xhprof的分析日志

2、实际项目中该怎么样引入xhprof

请参见如下截图所示引入思路(在项目控制器基类构造方法和析构方法里做动作),思路技巧仅供就学参考,如下图:

www.5929.com 14
下边是自家在品种(以Yii2为框架)下引入xhprof代码一览

<?php
namespace backend\component;

use Yii;
use common\component\baseController;

class backendBaseController extends baseController
{
    public $layout = "/content";
    public $enableCsrfValidation = false;

    public static $profiling = 0;

    public function init(){
        parent::init();

        self::$profiling = 1;// !(mt_rand() % 9);
        if  (self::$profiling) {
            xhprof_enable(XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY);
        }
    }

    public function __destruct()
    {
        if(self::$profiling){
            $data = xhprof_disable();
            //$_SERVER['XHPROF_ROOT_PATH'] 该环境变量由第3步得来
            include_once $_SERVER['XHPROF_ROOT_PATH'] . "/xhprof_lib/utils/xhprof_lib.php";
            include_once $_SERVER['XHPROF_ROOT_PATH'] . "/xhprof_lib/utils/xhprof_runs.php";
            $x = new XHProfRuns_Default();

            //当前路由
            $routeName = Yii::$app->requestedRoute;
            //路由为空,则说明是首页
            if (empty($routeName)){
                $routeName = Yii::$app->defaultRoute;
            }

            //拼接xhprof分析结果保存文件名
            $xhprofFilename = str_replace('/', '_', $routeName).'_'.date('Ymd_His');
            $x->save_run($data, $xhprofFilename);
        }
    }
}

安装graphviz

四、重启服务

总结

xhprof是一个分析PHP代码品质瓶颈,进步PHP代码功用的便宜工具,通过xhprof,能够观察代码慢在何地,哪个地方还有优化的空中等等。

终极分享一个有关xhprof是的的材料
ipc2015-xhprof.pdf
下载链接: 密码:11p0

cd graphviz-2.38.0/
#后面参数是要确保安装了libphp才行哦【没安装的 brew install linpng 就可】
./configure --with-png=yes
make
sudo make install
 sudo /etc/init.d/http restart

参考资料

1.应用XHProf查找PHP品质瓶颈

2.PHP质量分析工具
xhprof

3.xhprof安装了graphviz还报错failed to execute cmd ” dot
-Tpng”

测试一下了

 查看phpinfo是不是安装成功

在事先下载的xhprof文件夹里面,找到xhprof_html,xhprof_lib、sample八个文本夹,那那多个公文夹放到您可以访问到得地点去,然后通过连接先拜访以下
View Full CallGraph链接到图形报表的页面。

五、使用方法

怎么利用

开头:
xhprof_enable(); //开启监测 
//xhprof_enable(XHPROF_FLAGS_NO_BUILTINS); 不记录内置的函数 
//xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY); 同时分析CPU和Mem的开销 

//要测试的代码
...
...
...

结尾:
$xhprof_data = xhprof_disable(); //停止监测,返回运行数据
$xhprof_root = '/(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();  
$run_id = $xhprof_runs->save_run($xhprof_data, "xhprof");
echo '<a href="http://(xhprof的虚拟主机域名)/xhprof_html/index.php?run='.$run_id.'&source=xhprof" target="_blank">xhprof统计</a>'; 

倘诺你现在要探望看自己做的一个网站的首页品质数据,那么你要找到那些网站的首页输入文件,在宗旨文件加载在此之前和今后分头拉长xhprof的属性测试代码

  下边的代码应用了,给xhprof设置虚拟主机的艺术。

#开启,具体参数说明可以查看官方文档
xhprof_enable(XHPROF_FLAGS_NO_BUILTINS | XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY);
#核心文件的执行
...
require 'index.php'
...
#关闭
$xhprof_data = xhprof_disable();
#这里的路径根据自己的站点来配置
$XHPROF_ROOT = realpath(dirname(__FILE__) .'/');
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->save_run($xhprof_data, "xhprof");
#这里打印出本次测试的id,方便到报表列表页面【http://xxxx/xhprof_html/】去通过对应的id找到对应的结果
var_dump($run_id);

  把源码包中的 xhprof_html 和 xhprof_lib
文件夹拷贝到自己树立的虚拟目录中

越来越多关于PHP相关内容感兴趣的读者可查阅本站专题:《PHP伸张开发教程》、《php缓存技术总计》、《PHP互联网编程技巧计算》、《php面向对象程序设计入门教程》、《PHP基本语法入门教程》、《PHP数组(Array)操作技能大全》及《php字符串(string)用法统计》

  cp -r xhprof_html xhprof_lib /xxx/xhprof/ 
(此处目标是白手起家数量解析目录,可将此目录配置成虚拟主机访问)

目的在于本文所述对我们PHP程序设计有所援助。

  运行后,统计点击重临的 xhprof总结 链接,即可。

您可能感兴趣的篇章:

  • 据悉在生养环境中使用php质量测试工具xhprof的详解
  • php轻量级的性质分析工具xhprof的安装使用
  • PHP品质分析工具XHProf安装使用教程
  • Linux系统下选择XHProf和XHGui分析PHP运行质量
  • 应用XHProf查找PHP质量瓶颈的实例
  • PHP质量分析工具xhprof的安装使用与注意事项
  • 动用PHP伸张Xhprof分析项目性质实践课程

六、注意难题以及名词解释

  在浮现的总结页面中,点[www.5929.com,View Full
Callgraph]图形化呈现(最大的质量难点会用灰色标注,其次是粉黑色);

  点击后,可能提醒错误音信,执行以下命令即可

 yum install -y graphviz
 yum install graphviz-gd

  名词解释

 

Function Name 函数名
 Calls 调用次数
 Calls% 调用百分比
 Incl. Wall Time (microsec) 调用的包括子函数所有花费时间 以微秒算(一百万分之一秒)
 IWall% 调用的包括子函数所有花费时间的百分比
 Excl. Wall Time (microsec) 函数执行本身花费的时间,不包括子树执行时间,以微秒算(一百万分之一秒)
 EWall% 函数执行本身花费的时间的百分比,不包括子树执行时间
 Incl. CPU(microsecs) 调用的包括子函数所有花费的cpu时间。减Incl. Wall Time即为等待cpu的时间
 减Excl. Wall Time即为等待cpu的时间
 ICpu% Incl. CPU(microsecs)的百分比
 Excl. CPU(microsec) 函数执行本身花费的cpu时间,不包括子树执行时间,以微秒算(一百万分之一秒)。
 ECPU% Excl. CPU(microsec)的百分比
 Incl.MemUse(bytes) 包括子函数执行使用的内存。
 IMemUse% Incl.MemUse(bytes)的百分比
 Excl.MemUse(bytes) 函数执行本身内存,以字节算
 EMemUse% Excl.MemUse(bytes)的百分比
 Incl.PeakMemUse(bytes) Incl.MemUse的峰值
 IPeakMemUse% Incl.PeakMemUse(bytes) 的峰值百分比
 Excl.PeakMemUse(bytes) Excl.MemUse的峰值
 EPeakMemUse% EMemUse% 峰值百分比

xhprof的设置与简便用法

xhprof是Facebook开源的轻量级PHP性能分析工具,Linux环境下得以经过pecl直接设置,比如在Ubuntu下仅需3行指令

pecl install xhprof-beta
echo "extension=xhprof.so" > /etc/php5/fpm/conf.d/xhprof.ini
service php5-fpm restart

后来可以经过phpinfo()检查增加是或不是曾经加载。

具体哪些选择啊,xhprof项目中一度提供了示范以及简易的UI,下载xhprof项目到web服务器,假诺能够由此访问,那么访问可以见到部分出口,并且提醒通过走访查看结果。接下来访问就足以看看曾经保存的结果,列出了具备函数的调用以及所消耗的岁月。

解析一下示范代码sample.php,关键部分唯有2行:

//开启xhprof并开始记录
xhprof_enable();
//运行一些函数
foo();
//停止记录并取到结果
$xhprof_data = xhprof_disable();

$xhprof_data中著录了程序单步运行进度中拥有的函数调用时间及CPU内存消耗等,具体记录哪些目标可以透过xhprof_enable的入口参数控制,之后的处理已经与xhprof增加无关,大概是编制了一个存储类XHProfRuns_Default,将$xhprof_data种类化并保存到某个目录,能够经过XHProfRuns_Default(__DIR__)将结果输出到当前目录,如若不点名则会读取php.ini配置文件中的xhprof.output_dir,照旧没有点名则会输出到/tmp。

xhprof_html/index.php将记录的结果整理并可视化,默认的UI里列出了:
•funciton name : 函数名
•calls: 调用次数
•Incl. Wall 提姆e (microsec): 函数运行时刻(包含子函数)
•IWall%:函数运行时刻(包涵子函数)占比
•Excl. Wall 提姆e(microsec):函数运行时刻(不包含子函数)
•EWall%:函数运行时刻(不包蕴子函数)

每一项应该简单领悟,以项目自带的sample.php为例,示例中编辑了一个main()函数,main()函数中调用foo()、bar()等片段子函数进行了一些字符处理。整个程序运行进程中,main()函数只运行了五次,并且由于main()函数中概括了具有的逻辑,所以main()函数的IWall%占比为100%,可是出于main()函数的效应都是由子函数完成的,因而main()函数的EWall%唯有0.3%,而foo()函数达成了紧要的办事,EWall%有98.1%。因而在条分缕析更大型的先后时,往往必要基于这几项目的分别排序,从差别的角度审视品质消耗。

在xhprof_html/index.php中还足以看出[View Full
Callgraph]链接,点击后方可绘制出一张可视化的习性分析图,假如点击后报错的话,可能是不够依赖graphviz,ubuntu可以透过apt安装
apt-get install graphviz

更好的注入格局

打听了地点那么些,其实就早已足以将xhprof整合到其余大家已部分系列中去了。方今大多数MVC框架都有唯一的进口文件,只须要在入口文件的始发处注入xhprof的逻辑

//开启xhprof
xhprof_enable(XHPROF_FLAGS_MEMORY | XHPROF_FLAGS_CPU);
//在程序结束后收集数据
register_shutdown_function(function() {
  $xhprof_data    = xhprof_disable();

  //让数据收集程序在后台运行
  if (function_exists('fastcgi_finish_request')) {
    fastcgi_finish_request();
  }

  //保存xhprof数据
  ...
});

只是这么免不了要修改项目的源代码,其实php本身就提供了更好的注入格局,比如将上述逻辑保存为/opt/inject.php,然后修改php
fpm配置文件

vi /etc/php5/fpm/php.ini

修改auto_prepend_file配置

auto_prepend_file = /opt/inject.php

这么具有的php-fpm请求的php文件前都会自行注入/opt/inject.php文件

只要采纳Nginx的话,还是能通过Nginx的安排文件设置,那样侵入性更小,并且可以兑现基于站点的流入。

fastcgi_param PHP_VALUE "auto_prepend_file=/opt/inject.php";

你或许感兴趣的篇章:

  • 基于在生育条件中选用php质量测试工具xhprof的详解
  • PHP质量分析工具XHProf安装使用教程
  • Linux系统下选用XHProf和XHGui分析PHP运行质量
  • PHP品质测试工具xhprof安装与运用方式详解
  • 行使XHProf查找PHP品质瓶颈的实例
  • PHP品质分析工具xhprof的装置使用与注意事项
  • 动用PHP扩张Xhprof分析项目性质实践学科

Leave a Comment.