我可以在xdebug profiler上手动说出在特定位置开始分析吗?

Mer*_*kos 33 php profiling xdebug

我已经在我的XAMPP安装中启用了xDebug分析,它运行正常.

现在我想询问是否有办法在我的源代码中说什么时候开始使用xDebug进行分析.

更具体地说,我想创建一个WordPress插件,我想说,从插件的起点开始分析并停止在插件的结束​​点进行分析.

那可能吗?

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

Lai*_*eed 54

编辑:如何在运行时打开/关闭Xdebug性能分析?你不能在运行时实际启用/禁用(例如每个函数调用).

您可以有选择地为每个请求启用探查器,这通常更好.要实现此行为,请设置以下设置:

xdebug.profiler_enable_trigger=1
xdebug.profiler_enable=0
Run Code Online (Sandbox Code Playgroud)

请注意,我们禁用了探查器并仅启用了触发器.从您的浏览器传递XDEBUG_PROFILE = 1

http://example.com/file.php?XDEBUG_PROFILE=1
Run Code Online (Sandbox Code Playgroud)

您也可以在POST或COOKIE中传递此参数.有关详细信息,请查看

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

  • 赞成明确提到无法在运行时打开/关闭 - 也因为这个答案实际上回答了问题标题,这是我搜索的内容. (9认同)
  • 支持,因为像我之前的人所述,这个答案确实回答了问题。感谢您提供信息和正确答案。 (3认同)
  • 我已经低估了这个答案,因为它实际上没有回答这个问题.我读到这个问题是想在php中动态打开和关闭分析器,允许分析特定代码而不是整个请求. (2认同)
  • 没有必要传XDEBUG_PROFILE=1,传XDEBUG_PROFILE就够了。 (2认同)

Tri*_*IER 6

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

概要分析和跟踪不是完全相同的东西,但是,如果您到这里结束,跟踪可能会满足您的需要。

要开始跟踪,您必须使用以下功能: xdebug_start_trace()

要停止跟踪,您必须使用以下功能: xdebug_stop_trace()

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

http://xdebug.org/docs/execution_trace