当前位置 主页 > 服务器问题 > nginx问题汇总 > 最大化 缩小

    利用PHP扩展Xhprof分析项目性能实践教程

    栏目:nginx问题汇总 时间:2018-11-18 17:00

    XHProf是Facebook开发的性能调试工具,能帮助直观的统计显示PHP程序执行中各方法函数调用次数和消耗时间,以方便我们排查性能瓶颈并进行调优。下面这篇文章主要给大家介绍了关于利用PHP扩展Xhprof分析项目性能实践的相关资料,需要的朋友可以参考下

    一、背景

    项目即将上线,想通过一些工具来分析代码的稳定性和效率,想起在上个团队时使用过的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/xhprof

    3.2 检测环境

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

    cd xhprof/extension/

    现在笔者需要编译一下源码,在编译之前可以使用phpze来探测PHP的环境,参考命令如下:

    phpize

    返回结果如下

    Configuring for:
    PHP Api Version:         20160303
    Zend Module Api No:      20160303
    Zend Extension Api No:   320160303

    3.3 编译安装

    生成 Makefile,为下一步的编译做准备

    ./configure

    返回结果如下

    creating libtool
    appending configuration tag "CXX" to libtool
    configure: creating ./config.status
    config.status: creating config.h
    config.status: config.h is unchanged

    开始编译,并进行安装

    make && make install

    返回结果如下

    Build complete.
    Don't forget to run 'make test'.

    Installing shared extensions:     /usr/local/Cellar/php@7.1/7.1.19/pecl/20160303/

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

    四、配置

    在编译安装源码之后,笔者还需要对PHP的配置文件夹以及xhprof的进行一些简单的配置,操作过程如下所示

    4.1 找出配置文件位置

    要修改PHP的配置首先需要知道配置文件在什么位置,这里可以通过PHP的命令来查看配置文件存放位置,参考命令如下: