xdebug学习

xdebug是什么

xdebug是PHP的一个插件,可用于分析PHP程序的性能以及变量,这样就可以不在代码里各种echo,var_dump来调试代码

xdebug的安装

上面也说过,xdebug是PHP的插件,自然也是插件的安装方法,不过xdebug的版本需要注意

具体安装的教程地址:https://blog.csdn.net/alan8865/article/details/81331252

因为其他人已经写过,这里不再赘述,直接引用了

xdebug配置

安装完xdebug,就需要配置了,这里主要说下直接在服务器上生成分析文件并直接用代码分析

配置文件 php.ini

配置如下

[Xdebug]
;断点调试
;xdebug.auto_trace=1 ;启用代码自动跟踪 不建议开启,每次访问就会生成一个分析文件,产生文件太多
xdebug.collect_vars=1 ;收集变量
xdebug.collect_return=1 ;收集返回值
xdebug.collect_params=4 ;收集参数
xdebug.trace_output_dir="/tmp/xdebug" ;断点调试输出地址
xdebug.trace_output_name=yunke.%p.%H ;文件名格式
xdebug.trace_enable_trigger=1 ;只有接收到XDEBUG_TRACE变量才会追踪
xdebug.trace_enable_trigger_value="yunke" ;XDEBUG_TRACE变量值
xdebug.show_mem_delta=1 ;输出格式,这个是人类可读性跟踪信息
;性能分析
;xdebug.profiler_enable=on ;自动生成性能文件,不建议开启,每次访问就会生成一个分析文件,产生文件太多
xdebug.profiler_enable_trigger=1 ;只有接收到XDEBUG_PROFILE=1才会生成报告
xdebug.profiler_output_dir="/tmp/xdebug"
xdebug.profiler_output_name=cachegrind.out.%p.%H

那么访问地址如何写呢

浏览器直接访问 http://你的域名/***.php?XDEBUG_TRACE=yunke&XDEBUG_PROFILE=1

就会在/tmp/xdebug这里面生成

xdebug文件分析

生成了之后,我们要如何查看分析结果

首先,访问了我们写的代码之后,会生成两个文件,一个是cachegrind.out.***和一个***.xt

第一个就是我们的性能分析文件,第二个是我们的断点调试文件

首先先讲断点调试文件

这个文件是***.xt

里面的内容如下:

TRACE START [2020-01-27 15:14:55]
    0.0006     402352  +402352   -> {main}() /www/www.yzb.com/test2.php:0
    0.0006     402352       +0     -> show($params = 0) /www/www.yzb.com/test2.php:13
    0.0006     402352              >=> 0
    0.0006     402352       +0     -> show2($params = 0) /www/www.yzb.com/test2.php:14
    0.0007     402352              >=> 0
    0.0007     402352       +0     -> show($params = 1) /www/www.yzb.com/test2.php:13
    0.0007     402352              >=> 1
    0.0007     402352       +0     -> show2($params = 1) /www/www.yzb.com/test2.php:14
    0.0007     402352              >=> 1
    0.0007     402352       +0     -> show($params = 3) /www/www.yzb.com/test2.php:13
    0.0007     402352              >=> 3
    0.0007     402352       +0     -> show2($params = 3) /www/www.yzb.com/test2.php:14
    0.0007     402352              >=> 3

可以看到函数调用,变量值,返回值等信息

>=> 3 这种是函数返回

性能文件分析

性能分析文件是cachegrind.out.***

内容如下:

version: 1
creator: xdebug 2.9.0 (PHP 7.4.0)
cmd: /www/www.yzb.com/test2.php
part: 1
positions: line

events: Time Memory

fl=(1) /www/www.yzb.com/test2.php
fn=(1) show
18 2 0

fl=(1)
fn=(2) show2
26 0 0

fl=(1)
fn=(1)
18 0 0

fl=(1)
fn=(2)
26 0 0

如果这样看,我也看不懂,这时候需要借助工具,在自己的服务器上搭建一个网址,比如路径是 /www/www.analyse.com/,然后

git clone https://github.com/jokkedk/webgrind.git

下载完这个网站代码之后

修改配置

vim  /www/www.analyse.com/webgrind/config.php

修改里面的

static $storageDir = '/tmp/webgrind';
static $profilerDir = '/tmp/xdebug';

然后配置nginx让其可以被访问

访问 http://www.analyse.com/webgrind/index.php

页面如下

箭头处是选择哪个文件分析

这里注意的是,需要把php.ini 里的display_error改为off,要不然会看不到分析报告

结语

自此,xdebug环境搭建完毕,这里需要讲的是,xdebug最好是放在测试机上,因为很消耗性能,线上容易受影响,所以,最好在自己的机器或者测试配置xdebug

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值