《Modern PHP》关于Xdebug的配置参考

作者: JONE 分类: PHPer 发布时间: 2018-09-11 10:13

xdebug是最流行的PHP分析器之一,使用它分享应用的调用堆栈,能轻易找出瓶颈和性能问题。

配置

xdebug的配置保存在php.ini文件中。
下面是我推荐使用的xdebug配置,记得要修改分析结果的输出目录。保存这些设置后,要重启php进程。
xdebug.profiler_enable = 0
xdebug.profiler_enable_trigger = 1
xdebug.profiler_output_dir = /path/to/profiler/results

xdebug.profiler_enable = 0 #这么设置是为了不让xdebug自动运行。我们不想让xdebug在每次请求时都自动运行,因为这样会极大降低性能,还会阻碍开发。

xdebug.profiler_enable_trigger = 1 #这么设置是为了在需要时启动xdebug。我们可以在php应用的任何一个url中加上 XDEBUG_PROFILE=1 查询参数,在单个请求中启动xdebug。xdebug检测到这个查询参数时,会分析当前请求,然后生成报告,将其保存到xdebug.profiler_output_dir设置指定的输出目录。

xdebug.profiler_output_dir = /path/to/profiler/results #这是一个目录的路径,这个目录用于保存分析器生成的报告。如果复杂的PHP应用,分析器生成的报告可能很大(例如 500MB或者更大)。记得要把这个设置的值改为正确的文件系统路径。(建议吧分析器生成的结果保存在php应用的最顶层目录中,这样在开发的过程中便于找到并查看分析结果)

触发运行

因为我们把xdebug。profiler_enable的值设为了0,所以xdebug不会自动运行。我们可以在php应用的任何一个url中加上XDEBUG_PROFILE=1查询参数,例如、users/show/1?XDEBUG_PROFILE=1,在单个请求中触发运行xdebug。xdebug检测到XDEBUG_PROFILE查询参数时,会自动请求中启动xdebug。分析器生成的结果会转储到xdebug_profiler_output_die设置知道的目录中。

分析

xdebug生成的结果是CacheGrind格式,因此我们要使用兼容CacheGrind的应用查看分析结果。下面是几个查看CacheGrind格式文件的优秀应用:
在windows中运行的WinCacheGrind
在linux中运行的KCacheGrind
在web浏览器中运行的webGrind3

====摘抄自Modern PHP 中文版