开发完毕项目后,不能直接上线,项目运行习惯怎么样呢?需要一个简单的测试,进行测试需要的工具是xhprof
xhprof是一个分层PHP性能分析工具。它报告函数级别的请求次数和各种指标,包括阻塞时间,CPU时间和内存使用情况。一个函数的开销,可细分成调用者和被调用者的开销,XHProf数据收集阶段,它记录调用次数的追踪和包容性的指标弧在动态callgraph的一个程序。它独有的数据计算的报告/后处理阶段。在数据收集时,XHProfd通过检测循环来处理递归的函数调用,并通过给递归调用中每个深度的调用一个有用的命名来避开死循环。XHProf分析报告有助于理解被执行的代码的结构,它有一个简单的HTML的用户界面( PHP写成的)
xhprof 并不是php自带的扩展,需要进行安装才能使用,这里采用源码的形式进行安装:
详细安装步骤如下:
1、使用git下载源码
git clone https://github.com/longxinH/xhprof
或者直接下载安装包(此安装包是git clone 下来的文件)
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 两个文件夹放在网站项目可以访问到的目录下
如图所示:
在需要测试性能的代码上加上以下代码:
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";
我们进行下访问:
http://172.28.66.194:8001/xhprof_html/index.php?run=5bbc69fc315b6&source=xhprof_foo
我这里没有连接数据库,就是这样的一张分析图,黄色的基本上不是管,一般情况下,我们要处理的是 红色 框中的这个部分代码。
进行一定的优化处理。
好了,xhprof 从安装 到 测试 都已经走通了,这次就到这里了。byebye