作为程序员一定要保持良好的睡眠,才能好编程

xhprof测试系统性能-安装与调试

发布时间:2018-10-09

开发完毕项目后,不能直接上线,项目运行习惯怎么样呢?需要一个简单的测试,进行测试需要的工具是xhprof


xhprof是一个分层PHP性能分析工具。它报告函数级别的请求次数和各种指标,包括阻塞时间,CPU时间和内存使用情况。一个函数的开销,可细分成调用者和被调用者的开销,XHProf数据收集阶段,它记录调用次数的追踪和包容性的指标弧在动态callgraph的一个程序。它独有的数据计算的报告/后处理阶段。在数据收集时,XHProfd通过检测循环来处理递归的函数调用,并通过给递归调用中每个深度的调用一个有用的命名来避开死循环。XHProf分析报告有助于理解被执行的代码的结构,它有一个简单的HTML的用户界面( PHP写成的)


xhprof 并不是php自带的扩展,需要进行安装才能使用,这里采用源码的形式进行安装:


详细安装步骤如下:


1、使用git下载源码

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

或者直接下载安装包(此安装包是git clone 下来的文件)

xhprof .zip


2、环境检测

进入 xhprof/extension

找到phpize所在的路径:

/usr/local/php/php7/bin/phpize


在编译之前可以使用phpze来探测PHP的环境

[root@localhost extension]#cd xhprof/extension
[root@localhost extension]# /usr/local/php/php7/bin/phpize
Configuring for:
PHP Api Version:         20170718
Zend Module Api No:      20170718
Zend Extension Api No:   320170718

3、编译安装

[root@localhost extension]# ./configure --whth-php-config=/usr/local/php/php7/bin/php-config 


[root@localhost extension]# make && make install


4、配置php.ini文件

我的配置文件放在  /usr/local/php/php7/etc/php.ini 放在了这里,

如果不知道配置文件放在哪里,可以通过 phpinfo() 函数查看php.ini

或 通过命令行 php -i | grep php.ini

[root@localhost extension]# php -i | grep php.ini

Configuration File (php.ini) Path => /usr/local/php/php7/etc

Loaded Configuration File => /usr/local/php/php7/etc/php.ini


vim /usr/local/php/php7/etc/php.ini 修改配置文件:


#增加一条

extension=xhprof.so


5、重新启动php-fpm 或 apache 服务器 ,并检测是否支持xhprof


[root@localhost extension]# service phpfpm7 restart #每一个服务器的启动方式不同,根据自己情况重新启动
 


[root@localhost extension]# php -m | grep xhprof
xhprof


安装完毕。



如何使用?

如何测试?


在 xhprof 文件夹中找到 xhprof_html 和 xhprof_lib 两个文件夹放在网站项目可以访问到的目录

如图所示:

xhproflib.png



在需要测试性能的代码上加上以下代码:

  require_once $_SERVER['DOCUMENT_ROOT'].'/xhprof_lib/utils/xhprof_lib.php';
       require_once $_SERVER['DOCUMENT_ROOT'].'/xhprof_lib/utils/xhprof_runs.php';
       xhprof_enable();


        echo url("bb");

        var_dump('1111111111111111111111111111');


        $xhprof_data=xhprof_disable();

$xhprof_runs = new \XHProfRuns_Default();
//获取当前当前页面分析结果
$run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_foo");
echo "\nhttp://172.28.66.194:8001/xhprof_html/index.php?run=$run_id&source=xhprof_foo\n";


我们进行下访问:

urlxhprof.png


http://172.28.66.194:8001/xhprof_html/index.php?run=5bbc69fc315b6&source=xhprof_foo


xhprofresult.png



bbbbbbbbbbbbbbb.png


我这里没有连接数据库,就是这样的一张分析图,黄色的基本上不是管,一般情况下,我们要处理的是 红色 框中的这个部分代码。


进行一定的优化处理。


好了,xhprof 从安装 到 测试 都已经走通了,这次就到这里了。byebye