PHP性能分析之xdebug+webgrind


Xdebug是一个开放源代码的PHP程序调试器,可以用来跟踪,调试和分析PHP程序的运行状况。这里仅说明用来对php运行状态的使用说明。

xdebug安装

  • 运行php -m查看是否已安装xdebug扩展,已安装则跳过当前步骤
  • 源码地址:https://github.com/xdebug/xdebug
  • 编译完成后编辑php.ini文件,添加如下
; 引入xdebug扩展
extension=xdebug.so

; 配置xdebug
[xdebug]
; 自动生产分析文件
xdebug.profiler_enable=0
; 启用触发,url添加参数XDEBUG_PROFILE才会生成分析文件
xdebug.profiler_enable_trigger=1
; 分析文件储存路径(默认/tmp)
; xdebug.profiler_output_dir = "/tmp/xdebug"
; 分析文件名称
; xdebug.profiler_output_name=cachegrind.out.%p
  • 重启php-fpmapache以生效

webgrind安装

  • webgrind只需引入即可
  • 源码地址:https://github.com/jokkedk/webgrind/
  • 配置nginx或放入项目中

使用

  • 请求接口,添加参数XDEBUG_PROFILE,会在指定路径中生成一个文件

    image-20191218161359002

  • 打开webgrind

    image-20191218161408891

  • 选好参数后点击update如下图

    image-20191218161418063

参数说明

  • show 90%:要显示耗时比率,最好不要选100%,会卡。相当于显示出比较耗时的方法
  • Invocation Count:被调用执行的次数
  • Total Self Cost:自身耗时
  • Total Inclusive Cost:综合耗时
  • 比例条:蓝色(内置函数),灰色(引入文件),青色(自定义函数),橙色(过程执行所占时间的比例)
PHP