【问题标题】:Can I manually say on xdebug profiler to start profiling in specific place?我可以在 xdebug profiler 上手动说在特定位置开始分析吗?
【发布时间】:2011-12-26 01:16:12
【问题描述】:

我已经在我的 XAMPP 安装中启用了 xDebug 分析,它工作正常。

现在我想问一下,是否有办法从我的源代码中说明何时开始使用 xDebug 进行分析。

更具体地说,我想创建一个WordPress插件,我想说,从插件的起点开始分析,在插件的终点停止分析。

这可能吗?

注意:以上只是一个例子。它可以是我可能需要配置的 CakePHP 插件或新的 PHP 类

【问题讨论】:

    标签: php profiling xdebug


    【解决方案1】:

    编辑:根据How to Turn On/Off Xdebug Profiling at Runtime?,您实际上无法在运行时启用/禁用(例如每个函数调用)。

    您可以根据请求选择性地启用分析器,这通常会更好。 要实现此行为,请设置以下设置:

    对于 xdebug 3 (Upgrade Guide):

    xdebug.mode = profile;
    xdebug.start_with_request = trigger;
    

    对于 xdebug 2:

    xdebug.profiler_enable_trigger=1
    xdebug.profiler_enable=0
    

    请注意,我们禁用分析器并仅启用触发器。 从您的浏览器传递 XDEBUG_PROFILE=1

    http://example.com/file.php?XDEBUG_PROFILE=1
    

    您也可以在 POST 或 COOKIE 中传递此参数。欲了解更多信息检查

    1. http://xdebug.org/docs/profiler#starting
    2. http://xdebug.org/docs/all_settings#profiler_enable_trigger

    【讨论】:

    • 我对这个答案投了反对票,因为它实际上并没有回答这个问题。我读到这个问题是想在 php 中动态打开和关闭分析器,允许分析特定代码而不是整个请求。
    • 赞成明确提到无法在运行时打开/关闭 - 也因为这个答案实际上回答了我搜索的问题标题。
    • 赞成,因为就像我之前所说的那样,这个答案确实回答了这个问题。感谢您提供信息和正确答案。
    • 不需要传XDEBUG_PROFILE=1,传XDEBUG_PROFILE就够了。
    【解决方案2】:

    正如 Laith 所说,您无法选择希望 xDebug 何时开始分析以及何时停止。但是,另一个 xDebug 功能提供了这种灵活性:跟踪。

    分析和跟踪并不完全相同,但是,如果您最终来到这里,那么跟踪可能会适合您的需要。

    要开始追踪,你必须使用这个函数: xdebug_start_trace()

    要停止追踪,你必须使用这个函数: xdebug_stop_trace()

    您可以使用很多设置来更改跟踪的行为:

    http://xdebug.org/docs/execution_trace

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-27
      • 1970-01-01
      • 2012-06-12
      相关资源
      最近更新 更多