Php 有没有增加xdebug概要文件调用树深度的方法?

Php 有没有增加xdebug概要文件调用树深度的方法?,php,xdebug,Php,Xdebug,我正在尝试使用xdebug来确定是什么导致页面加载缓慢,而探查器快照在我使用的PhpStorm的调用树选项卡中显示的深度不够 调用树选项卡如下所示: index.php .. .. my_file.php function1 function2 ... 它显示my_file.php占用了超过90%的时间,但它在调用树中的深度不够,无法让我看到哪些函数占用了这些时间。我可以从execution statistic(执行统计)选项卡中大致了解到这一点,该选项卡显

我正在尝试使用xdebug来确定是什么导致页面加载缓慢,而探查器快照在我使用的PhpStorm的调用树选项卡中显示的深度不够

调用树选项卡如下所示:

index.php
  ..
  ..
  my_file.php
    function1
    function2
    ...
它显示my_file.php占用了超过90%的时间,但它在调用树中的深度不够,无法让我看到哪些函数占用了这些时间。我可以从execution statistic(执行统计)选项卡中大致了解到这一点,该选项卡显示了每个单独的函数,但如果调用树选项卡能够更深入,那就太好了

是否有允许此操作的设置

以下是我的xdebug设置:

[xdebug]
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.profiler_enable = 0
xdebug.profiler_enable_trigger = 1
xdebug.profiler_output_name = "callgrind.out.%t-%s"
xdebug.profiler_output_dir = "E:\wamp\www\xdebug_profiler"
xdebug.max_nesting_level = 500
xdebug.var_display_max_depth = 100
xdebug.var_display_max_data = 1024
考虑设置

xdebug.var_display_max_depth
对于更高的值,默认值为3

此处列出了可能设置的其他变量:

编辑 我刚刚从xdebug的作者Derick Rethans那里得到了规范的答案,看起来我的答案确实是正确的!来自xdebug通用邮件列表上的通信:

大家好

评测中调用堆栈的深度有限制吗 xdebug的特性

不,没有

使用PHP Storm作为前端,我可以看到我的_file.PHP占了90%以上 是的,但是图表在调用树中的深度不够 查看哪些功能占用了时间

我知道如果kcachegrind占用的空间小于 默认为5%。也许phpstorm也会这样

我能够看到哪些函数在整个过程中占用的时间最多 “执行统计”选项卡,但是如果能看到代码是如何运行的,那就太好了 正在到达rogue函数调用

我很难看到,没有配置文件,指针是什么 你会期望

原始答案 这是一个有趣的问题,也很好奇在哪里会施加限制。原因是PHP的内置在默认情况下打印整个堆栈跟踪。$limit参数仅在5.4中添加

此外,浏览xdebug源代码时,我没有看到任何会限制调用堆栈集合的值或代码。也就是说,我没有看到任何配置选项会影响探查器捕获的函数调用的数量

所以简单的答案是否定的

但还是有一些想法和建议

使用执行统计选项卡查找rogue函数。从该函数调用dieprint_debug_backtrace。这应该会给你一个堆栈跟踪到所说的流氓函数。 再次使用execution statistic选项卡来查找rogue函数,使用xdebug从那里获取它,这比我知道的cachegrind UI更不理想,但取而代之的是。。。 在收集配置文件时加载页面之前,请清除xdebug.profiler\u output\u dir。如果有多个输出文件,请确保在cachegrind UI中检查所有输出文件。沿着这些线考虑添加一个随机值xDebug PrimeRePuxPosixNo.CalgRun.Out.%T%%S%R只是为了排除文件重写这发生在我身上,当你意识到这是问题时会非常沮丧。 尝试另一个cachegrind可视化工具。虽然我怀疑这是个问题,但谁知道,作为最后手段,我认为值得一试。 最后,为了获得规范的答案,您可以在xdebug邮件列表上发布ecartis@lists.xdebug.org,或问问作者本人。他们建议你先问一下,你已经问过了,所以名单和作者可能会接受你的询问。详细资料。 我的配置中有var_display_max_depth=100,它没有改变任何东西。根据您链接到的文档,此设置与函数跟踪相关,而不是分析相关。。。控制使用xdebug_var_dump、xdebug.show_local_vars或通过函数跟踪显示变量时数组元素和对象属性的嵌套级别。