介绍:
xhprof是php性能检测的一个很好用的工具, xhprof是由非死不可公司开发, 后来没有维护了, 所以也不支持php7以上版本. 不过还好有个tideway的php_xhprof_extension扩展是支持php7以上版本, 同时还是开源免费的. 此外他家有个与这个扩展相结合的一个强大的图形界面, 不过只有30天免费试用. 为此我们可以使用xhgui开源免费的图像界面代替.
本教程将介绍如何搭建xhprof + xhgui实现对php性能的分析和检测
window篇
1. php安装php_xhprof_extension扩展
1.1 该扩展只支持php7以上, php7不支持, 查看自己的phpinfo信息选择对应的地址下载. 下载地址栏如下
下载地址: https://ci.appveyor.com/project/tideways/php-profiler-extension
1.2 在php.ini引入该扩展. 以下是我引入该扩展的代码共参考
extension = tideways_xhprof_71.dll
1.3 重启后,查看phpinfo()信息中有没有该模块.没有请自行排查下
2.安装mongodb(xhgui项目基于此实现的所以要先安装)
2.1 安装mongodb软件, 自行去官网下载安装即可
2.2 安装php mongodb扩展, 官网下载地址: https://pecl.php.net/package/mongo ,
然后在php.ini引入刚下载的扩展. 重启确认下phpinfo()是否有出现mongodb扩展
2.3 开启mongodb服务,一般默认服务地址是 127.0.0.1:27017
3.搭建xhgui项目
3.1 git clone 下载xhgui项目代码
克隆地址: https://github.com/perftools/xhgui
3.2 为xhgui配置域名
自己随便配置域名, 如果是nginx服务器可以参照刚2.1中下载的项目的根目录中的nginx.conf
3.3 配置xhgui参数
复制一份项目中/config/config.default.php文件重命名为config.php放在同个目录下. 该文件就是xhgui的配置文件
几个重要参数解释:
profiler.enable: function(){ 如果return true, 则进行性能检测, false则关闭性能检测 而 return rand(1, 100) === 42;则是相当于100次中有1次会开启性能检测.相当于1%的采样率, 这样能减少对线上性能影响. }
3.4 xhgui的使用
简单粗暴的办法在你要检测的页面中 引入xhgui项目的external/head.php文件即可
其他比较高级的方法在xhgui项目的read.me中有介绍, 其中在nginx中配置auto_prepend_file方法对我不起作用.
3.5 查看性能分析结果
访问xhgui项目可以看到, 只要有开启性能检测的页面被访问时就会被记录下来
Linux篇
//todo