如何使用 Xdebug 分析单个 php 文件?

Posted

技术标签:

【中文标题】如何使用 Xdebug 分析单个 php 文件?【英文标题】:How to use Xdebug to profile a single php file? 【发布时间】:2012-12-31 22:49:48 【问题描述】:

我想使用 Xdebug 来分析单个 php 文件。来自Xdebug documentation,据说

通过在 php.ini 中将 xdebug.profiler_enable 设置为 1 来启用分析。这指示 Xdebug 开始将分析信息写入使用 xdebug.profiler_output_dir 指令配置的转储目录。

我试过了,但是 Xdebug 会生成很多配置文件日志。我没有测试环境,只能使用生产服务器。我想知道有没有办法设置只测试一页?

有什么建议吗?

---2013 年 2 月 11 日更新---------------------------

最后我选择facebook / xhprof 作为我的生产服务器分析器。我现在每天都使用 xhprof_html。它节省了大量时间并且非常易于使用,尤其是 Full Callgraph 视图。

【问题讨论】:

所以你在生产服务器上有 xdebug。很好,我一直想要一个。 生产服务器上Xdebug的问题是什么?当我不需要它时,我可以禁用它。 【参考方案1】:

使用触发器http://xdebug.org/docs/all_settings#profiler_enable_trigger 并将其添加到您的网址。即http://example.com/mypage.php?XDEBUG_PROFILE=1

此外,在生产环境中进行分析时,XHProf 优于 XDebug:https://github.com/facebook/xhprof

【讨论】:

感谢 XHProf 的生产【参考方案2】:

xdebug 配置中有另一个选项可以执行此操作:xdebug.profiler_enable_trigger。将其设置为 1,然后使用查询字符串后缀 ?XDEBUG_PROFILE 打开要分析的 URL。然后它将仅为该脚本编写一个日志。

【讨论】:

如果您想在 CLI 中分析单个会话,请改用环境变量 export XDEBUG_CONFIG="idekey=session_name profiler_enable=1

以上是关于如何使用 Xdebug 分析单个 php 文件?的主要内容,如果未能解决你的问题,请参考以下文章

使用 KCacheGrind 聚合 PHP XDebug 数据

Visual Studio Code如何使用XDebug进行php断点调试?

PHP mac xdebug配置

phpstorm + xdebug 远程断点调试

qcachegrind 错误:未知的文件格式。从 php xdebug 生成的文件

php安装xdebug调试的问题。。