【问题标题】:PHP single request profile [closed]PHP单一请求配置文件[关闭]
【发布时间】:2020-06-22 00:44:18
【问题描述】:

我想分析我的应用程序的某些部分以进行改进。执行此操作的推荐方法似乎是在 php.ini 中启用 xdebug,但这会使其在每个请求上编写分析器内容,这很慢并且会生成大量文件。

不过,不断启用和禁用会很烦人。

我想要的是有一些我可以从命令行运行的东西,它将运行对特定 URL 的特定请求,并在运行时将探查器报告写入特定文件夹,但在其余时间不探查。

【问题讨论】:

  • 如您所知使用 Xdebug,但将其与触发器一起使用。在xdebug.org/docs/profiler 了解更多信息,请查看相关设置部分。

标签: php profiling xdebug


【解决方案1】:

确保您的 php.ini 包含:

xdebug.profiler_enable = 0
xdebug.profiler_enable_trigger = 1

现在您可以使用 cURL 分析单个网页:

curl -I http://my-website.local/?XDEBUG_PROFILE

注意 XDEBUG_PROFILE 查询参数:这是启用 Xdebug 分析器的原因(请参阅文档:https://xdebug.org/docs/profiler)。

cURL 会告诉我们:

HTTP/1.1 200 OK
Date: Tue, 10 Mar 2020 08:45:50 GMT
Server: Apache/2.4.29 (Ubuntu)
X-Powered-By: PHP/7.4.2
X-Xdebug-Profile-Filename: /tmp/cachegrind.out.6173
Content-Type: text/html; charset=UTF-8

分析器为我们添加了一个 X-Xdebug-Profile-Filename 标头,其中包含 cachegrind 文件,然后我们可以在 KCachegrind 等程序中打开该文件。

如果该标头不存在,则说明您使用的是 Xdebug

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-14
    • 1970-01-01
    • 2021-02-26
    • 1970-01-01
    • 1970-01-01
    • 2014-07-11
    • 2010-09-13
    相关资源
    最近更新 更多