菜单

php轻量级的品质分析工具xhprof的安装使用

2019年1月29日 - 金沙编程资讯

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

6、访问xhprof根目录

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

金沙国际娱乐中心 1

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

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

参考资料

1.拔取XHProf查找PHP品质瓶颈

2.PHP品质分析工具
xhprof

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

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

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

xhprof概述:

xhprof的安装与简单用法

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

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

金沙国际娱乐中心 2
上面是我在档次(以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);
        }
    }
}

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

安装图形绘制工具,前面的辨析结果可以经过该工具以图表呈现,更直观
进行安装命令:yum install graphviz

测试一下了

 sudo /etc/init.d/http restart

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

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

总结

xhprof是一个分析PHP代码质量瓶颈,提升PHP代码效能的便宜工具,通过xhprof,可以看到代码慢在什么地方,哪儿还有优化的长空等等。

末段分享一个关于xhprof是的的材料,可以到Linux公社资源站下载:

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

免费下载地址在

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

切实下载目录在 /去年资料/4月/28日/xhprof扩大安装与行使/

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

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

Linux公社的RSS地址:

本文永久更新链接地址

金沙国际娱乐中心 3

graphviz的话也要下载,首如若突显xhprof质量结果的图纸报表,戳那里
这里

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

1、安装

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

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/

前不久要做网站的性质相比较,于是就找一款品质测试工作来娱乐,工具很多,但对待此前依然觉得xhprof的安装和利用相对来说简单点,数据解析也都还足以,上边就说说它的设置和运用。。。

打听了上面那个,其实就早已足以将xhprof整合到其它我们已部分连串中去了。近年来多数MVC框架都有唯一的进口文件,只须求在入口文件的起始处注入xhprof的逻辑

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目录下生成一个解析结果保存文件,网页端访问结果文件,如下图:
金沙国际娱乐中心 4

金沙国际娱乐中心 5

当自己在点[View Full Callgraph]翻开图形分析界面时,难点应运而生了,如下图:
金沙国际娱乐中心 6
好在网上查到原因是,php配置文件中有个disable_functions禁用函数列表,把里面的proc_open免去即可。

图片分析结果展现如下
金沙国际娱乐中心 7

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

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

金沙国际娱乐中心 8

//执行
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

cd xhprof-0.9.4/xhprof-0.9.4/extension/
phpize
./configure
make
sudo make install
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是一个剖析PHP代码质量瓶颈,进步PHP代码作用的便民工具,通过xhprof,可以看到代码慢在哪里,哪个地方还有优化的半空中等等。

末段分享一个有关xhprof没错的素材
ipc2015-xhprof.pdf
下载链接: 密码:11p0

二、xhprof的使用

下载xhprof和graphviz

您或许感兴趣的稿子:

二、xhprof的使用

1、安装

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

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

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

三、php.ini配置

6、访问xhprof根目录

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

金沙国际娱乐中心 9

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目录下生成一个剖析结果保存文件,网页端访问结果文件,如下图:
金沙国际娱乐中心 10

金沙国际娱乐中心 11

当自身在点[View Full Callgraph]查阅图形分析界面时,难点应运而生了,如下图:
金沙国际娱乐中心 12
好在网上查到原因是,php配置文件中有个disable_functions禁用函数列表,把内部的proc_open打消即可。

图表分析结果呈现如下
金沙国际娱乐中心 13

xhprof的话,直接去php官网就足以下载,为了便利能够戳一下
这里

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

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

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

金沙国际娱乐中心 14
金沙js777,下边是我在类型(以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);
        }
    }
}

希望本文所述对我们PHP程序设计具有扶助。

 查看phpinfo是不是安装成功

目录

2、修改php.ini配置文件

在php.ini配置文件中增添下边配置,并创设目录/home/wwwroot/default/xhprof_data

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

安装graphviz

extension=xhprof.so
xhprof.output_dir=/tmp/xhprof //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/

一、xhprof伸张安装步骤

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

XHProf是一个支行PHP质量分析工具。它告诉函数级其余呼吁次数和各样目的,包涵阻塞时间,CPU时间和内存使用状态。一个函数的费用,可细分成调用者和被调用者的支付,XHProf数据收集阶段,它记录调用次数的寻踪和兼容性的目的弧在动态callgraph的一个程序。它独有的多少测算的告诉/后甩卖阶段。在数量收集时,XHProfd通过检测循环来处理递归的函数调用,并由此给递归调用中各样深度的调用一个立竿见影的命名来规避死循环。XHProf分析报告有助于明白被实践的代码的社团,它有一个粗略的HTML的用户界面(
PHP写成的)。基于浏览器的习性分析用户界面能更便于查看,或是与同行们享受收获。也能绘制调用关系图。

//开启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数据
  ...
});

2、修改php.ini配置文件

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

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

设置与利用:

添加一下情节:

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图