Php 有没有增加xdebug概要文件调用树深度的方法?
我正在尝试使用xdebug来确定是什么导致页面加载缓慢,而探查器快照在我使用的PhpStorm的调用树选项卡中显示的深度不够 调用树选项卡如下所示:Php 有没有增加xdebug概要文件调用树深度的方法?,php,xdebug,Php,Xdebug,我正在尝试使用xdebug来确定是什么导致页面加载缓慢,而探查器快照在我使用的PhpStorm的调用树选项卡中显示的深度不够 调用树选项卡如下所示: index.php .. .. my_file.php function1 function2 ... 它显示my_file.php占用了超过90%的时间,但它在调用树中的深度不够,无法让我看到哪些函数占用了这些时间。我可以从execution statistic(执行统计)选项卡中大致了解到这一点,该选项卡显
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或通过函数跟踪显示变量时数组元素和对象属性的嵌套级别。