本篇文章给大家带来的内容是关于php中的扩展Xhprof如何分析项目的性能,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
一、背景
项目即将上线,想通过一些工具来分析代码的稳定性和效率,想起在上个团队时使用过的xhprof扩展;因为换了新电脑,所以需要重新编译此扩展,现将安装与实际排查过程完整记录下来,方便自己回顾和帮助更多的读者。
二、操作步骤
-
安装扩展
-
配置扩展
-
测试分析
三、安装
xhprof扩展PHP并不自带,需要笔者去单独安装它,安装之后才能使用,笔者这里采用源码安装方式,安装过程如下
3.1 下载源码
xhprof在PHP的PECL官方上面已经比较老了,笔者的PHP版本为PHP7.1因此,需要在GitHub上下载xhprof上比较新的源码,参考命令如下
git clone https://github.com/longxinH/xhprof
3.2 检测环境
进入编译的文件夹,参考命令
cd xhprof/extension/
现在笔者需要编译一下源码,在编译之前可以使用phpze来探测PHP的环境,参考命令如下:
phpize
返回结果如下
Configuring for:PHP Api Version: 20160303Zend Module Api No: 20160303Zend Extension Api No: 320160303
3.3 编译安装
生成 Makefile,为下一步的编译做准备
./configure
返回结果如下
creating libtoolappending configuration tag "CXX" to libtoolconfigure: creating ./config.statusconfig.status: creating config.hconfig.status: config.h is unchanged
开始编译,并进行安装
make && make install
返回结果如下
Build complete.Don't forget to run 'make test'.Installing shared extensions: /usr/local/Cellar/[email protected]/7.1.19/pecl/20160303/
从返回信息中可以看到已经安装完成,并显示了扩展文件存放的位置
四、配置
在编译安装源码之后,笔者还需要对PHP的配置文件夹以及xhprof的进行一些简单的配置,操作过程如下所示
4.1 找出配置文件位置
要修改PHP的配置首先需要知道配置文件在什么位置,这里可以通过PHP的命令来查看配置文件存放位置,参考命令如下:
php --ini
执行命令后,返回结果如下
Configuration File (php.ini) Path: /usr/local/etc/php/7.1Loaded Configuration File: /usr/local/etc/php/7.1/php.iniScan for additional .ini files in: /usr/local/etc/php/7.1/conf.dAdditional .ini files parsed: /usr/local/etc/php/7.1/conf.d/ext-opcache.ini
在返回结果当中,可以看到多个配置文件的路径,笔者所需要的是第二个文件php.ini
查看扩展目录存放位置,参考命令如下
cat /usr/local/etc/php/7.1/php.ini | grep extension_dir
返回结果如下
extension_dir =<em>¥本文来%源[email protected]搞@^&代*@码)网5</em><strong>搞gaodaima代码</strong> "/usr/local/lib/php/pecl/20160303"; extension_dir = "ext"; Be sure to appropriately set the extension_dir directive.;sqlite3.extension_dir =
4.2 修改配置
从返回的结果当中,可以看到扩展的存放目录位置如下
/usr/local/lib/php/pecl/20160303
现在需要将刚才编译好的xhprof扩展复制到该目录当中,参考命令如下
cp /usr/local/Cellar/[email protected]/7.1.19/pecl/20160303/xhprof.so /usr/local/Cellar/[email protected]/7.1.19/pecl/20160303/