手机版

用PHP扩展xhpul分析项目绩效的实用教程

时间:2021-08-30 来源:互联网 编辑:宝哥软件园 浏览:

一.背景

项目即将上线,我想通过一些工具来分析代码的稳定性和效率,记住上一个团队使用的xhprof扩展;因为有了新的计算机,这个扩展需要重新编译。现在,安装和实际的故障排除过程都记录完整了,方便大家复习,帮助更多读者。

XHProf是由FaceBook开发的具有功能级的PHP分层分析器。

数据采集是基于C的PHP的扩展,分析报告是基于PHP的一系列HTML导航页面。

XHProf可以统计很多重要的数据,比如每个函数的调用次数、内存使用情况和CPU占用情况。

XHProf还可以比较两个统计样本,或者汇总多个数据样本的结果。

XHProf是分析PHP程序执行效率的利器,可以让我们得到更低的分析数据。

下面就不多说了,我们来看看详细的介绍

二、操作步骤

安装扩展配置扩展测试分析三。装置

Xhprof扩展PHP没有附带,所以我需要单独安装,然后才能使用。我这里使用的是源代码安装方式,安装过程如下

3.1下载源代码

Xhprof在PHP的PECL官方上比较老,作者的PHP版本是PHP7.1,所以需要在GitHub上下载xhprof上比较新的源代码,参考命令如下

git clone https://github.com/longxinH/xhprof3.2探测环境

进入编译文件夹,参考命令

现在我需要编译源代码。在编译之前,我可以使用phpze来检测PHP环境。参考命令如下:

Phpize返回以下结果

配置:PHP Api版本: 20160303Zend模块Api No: 20160303Zend扩展Api No: 320160303

3.3编译和安装

生成Makefile为下一次编译做准备。/configure返回以下结果

正在创建libtoolappending配置标记“CXX”到libtoolconfigure:正在创建。/config . status config . status 3360创建config . hconfig . status 3360 config . h不变

开始编译和安装

Make make install返回以下结果

构建完成。不要忘记运行“进行测试”。

安装共享分机:/usr/local/Cell/[email protected]/7 . 1 . 19/pecl/20160303/

从返回的信息中,您可以看到安装已经完成,并且显示了扩展名文件的位置

四.配置

在编译安装好源代码后,作者还需要对PHP配置文件夹和xhprof做一些简单的配置,操作过程如下

4.1找出配置文件的位置

要修改PHP的配置,首先需要知道配置文件的位置。在这里,您可以通过PHP命令检查配置文件的存储位置。参考命令如下:

执行该命令后,php - ini返回以下结果

配置文件(php.ini)路径: /usr/local/etc/php/7.1加载的配置文件:/usr/local/etc/PHP/7.1/PHP . inican获取其他信息。ini文件in :/usr/local/etc/PHP/7.1/conf . Daditional。ini文件parse d :/usr/local/etc/PHP/7.1/conf . d/ext-op cache . ini

在返回的结果中,您可以看到多个配置文件的路径,我需要的是第二个文件php.ini

检查扩展目录的存储位置。请参考以下命令

cat/usr/local/etc/PHP/7.1/PHP . ini | grepextension _ dir返回的结果如下

extension _ dir='/usr/local/lib/PHP/pecl/20160303 ';extension _ dir=' ext请确保适当地设置extension_dir指令。sqlite3.extension_dir=

4.2修改配置

从返回的结果中,您可以看到扩展存储目录的位置如下

/usr/local/lib/PHP/pecl/2016 03 03

现在您需要将刚刚编译的xhprof扩展复制到这个目录中。参考命令如下

CP/usr/local/cell/[email protected]/7 . 1 . 19/pecl/20160303/xh prof . so/usr/local/cell/[email protected]/7 . 1 . 19/pecl/20160303/通过vim编辑器编辑配置文件

vim/usr/local/etc/PHP/7.1/PHP . ini在配置文件的末尾增加了xhprof配置,并为保存xhprof生成的源文件定制了一个参考配置,如下所示

[xhprof]扩展=xhprof。索克斯洛夫。output _ dir=/data/www/xh prof/save _ output _ dir 4.3重新启动后生效

保存后,作者重启php-fpm使其配置生效,重启命令可以通过brew命令查看。参考命令如下:

Brew info [emailprotected]命令执行后,在返回的信息中可以看到以下信息

要立即启动[emailprotected]并在login:重新启动brew服务,请启动[email protected]或者,如果您不想/不需要后台服务,您可以只运行: PHP-FPM因此,作者构建的重新启动PHP-FPM的命令如下:

brew服务重启[电子邮件保护]后,返回的结果如下

正在停止`[emailprotected]'.(可能需要一段时间)==成功停止`[emailprotected]`(标签: [emailprotected])==成功启动`[emailprotected]`(标签: [email protected]) 4.4验证安装

现在验证xhprof扩展已经安装。请参考以下命令

执行php -m | grep xhprof命令后,xhprof将显示为扩展安装成功的返回结果,如下图所示

动词(verb的缩写)测试

经过以上操作,作者已经成功安装配置,现在需要用PHP代码来验证xhprof的分析效果

5.1创建虚拟主机

首先,创建一个虚拟主机,以便用户可以通过浏览器访问它。要创建虚拟主机,您需要有一个根目录并编辑nginx配置文件。具体操作如下:

5.1.1创建项目目录

创建项目根目录,请参考以下命令

mkdir-p/users/song/my code/work/test创建成功后,作者需要将git拉下的一些代码复制到项目的根目录下。参考命令如下

CP-r xh prof/xh prof _ html/users/song/my code/work/test/CP-r xh prof/xh prof _ lib/users/song/my code/work/test/5 . 1 . 2编辑配置文件

添加配置文件,请参考命令

/usr/local/etc/nginx/nginx . conf按如下方式添加配置文件

服务器{ listen 80server _ name test.localhostroot/user/song/my code/work/test;index.htmlindex.htmindex.php指数;location/{ try _ files $ uri $ uri//index . PHP?$ query _ string}位置~ \。PHP $ { fastcgi _ pass 127 . 0 . 0 . 1:9000;index.php指数;fastcgi _ param SCRIPT _ FILENAME $ document _ root $ fastcgi _ SCRIPT _ name;包括fastcgi _ params}}在/etc/hosts文件中添加一行解析记录,记录内容如下:

127.0.0.1 test.localhost5.2创建新测试代码

在git warehouse的examples文件夹中,已经有了一个演示代码,但是这个代码的注释都是英文的,排版方式也不容易让作者理解,所以作者重新编辑了这个文件,参考了下面的命令

使用vim创建一个新的PHP文件

在vim/users/song/my code/work/test/test . PHP中的文件中添加以下代码。

?Php//加载所需的文件include _ once’。/xh prof _ lib/utils/xh prof _ lib . PHP ';包括一次。/xh prof _ lib/utils/xh prof _ runs . PHP ';//定义函数函数测试($ max){ for($ idx=0;$ idx $ max$ idx){ echo“”;} }//定义测试方法函数a () {test (rand (1000,5000));}//开始分析xh prof _ enable();//要分析的函数a();//结束分析$ xh prof _ data=xh prof _ disable();//实例化xhprof类$ xh prof _ runs=new xh profiluns _ default();//获取当前页面的分析结果$ run _ id=$ xh prof _ runs-save _ run($ xh prof _ data,' xh prof _ foo ');echo ' \ n http://test . localhost/xh prof/xh prof _ html/index . PHP?run=$ run _ id source=xh prof _ foo \ n ';保存代码后,通过浏览器访问对应的网址。网址如下

http://test.localhost/xhprof/test.php

5.3结果分析

手术后的结果如下

你可以在页面上看到一个网址。复制并打开该网址后,可以看到该代码的分析结果,如下图所示

页面上有一个列表,显示了每个方法消耗的时间。如果列表不够清晰,点击页面上的查看完整调用图链接,直接生成图片,如下图所示

从图中可以清楚地看到,测试方法消耗了执行时间,因此作者可以有针对性地优化这种方法。

摘要

以上就是本文的全部内容。希望本文的内容对大家的学习或工作有一定的参考价值。有问题可以留言交流。谢谢你的支持。

版权声明:用PHP扩展xhpul分析项目绩效的实用教程是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。