最近XDebug的速度如何?我已经对以下版本进行了基准测试-所有版本都运行同一页面(成熟的Symfony 2应用程序,因此无论如何都不是一个简单的请求),而且看来从2.7版开始,情况变得更糟,甚至在禁用了ZendOPCache时,情况甚至更糟。 2.7.2。
(全部在同一硬件上,只需切换使用的XDebug版本即可完成
自然地,没有启用XDebug的页面可以正常运行(0.7秒),但是使用最新版本(我很欣赏2.8.0是一个beta),该页面无法使用。
这是我用于测试的配置
xdebug.remote_enable=1
xdebug.remote_mode=req
xdebug.idekey=default
xdebug.remote_host=127.0.0.1
xdebug.remote_autostart=0
xdebug.var_display_max_children=512
xdebug.var_display_max_data=32000
xdebug.var_display_max_depth=8
xdebug.remote_log=/tmp/xdbg.log
然后,我发现了更多提示,并且这些提示有些不合时宜,但是我们在所有版本中都聊了几毫秒。
[xdebug]
xdebug.remote_enable=1
xdebug.remote_mode=req
xdebug.idekey=default
xdebug.remote_host=127.0.0.1
xdebug.remote_autostart=1
xdebug.var_display_max_children=512
xdebug.var_display_max_data=32000
xdebug.var_display_max_depth=12
xdebug.remote_log=/tmp/xdbg.log
xdebug.profiler_enable=0
xdebug.collect_includes = 0
xdebug.collect_params = 0
xdebug.collect_return = 0
xdebug.collect_vars = 0
xdebug.overload_var_dump = 2
xdebug.coverage_enable = 0
xdebug.profiler_enable = 0
xdebug.profiler_enable_trigger = 1
我只是错过了一些东西吗?或者仅仅是XDebug最近几天变得越来越慢?
答案 0 :(得分:0)
首先,不要禁用OPcache。这是极大的性能提升。
对于Xdebug放慢速度,很难说为什么不知道完整的应用程序就这么做。如果您不使用代码覆盖率,则设置xdebug.coverage_enable=0
是个好主意。
您显示的许多“取消一些设置”设置基本上都是默认设置,因此它们不会做很多事情。如果您可以轻松地提供可重现的案例,那么我建议您在https://bugs.xdebug.org处提交一个bug,以便Xdebug的作者可以查看一下,但前提是要易于复制。
Xdebug确实禁用了某些OPcache设置。而这取决于PHP版本。仅对于7.3.0和7.3.1,我们总是会关闭特定的优化,而对于更高版本,则在xdebug.remote_enable=1
时,OPcache optimations (而不是OPcache本身)会被关闭:{{ 3}}-这应该会产生一些影响,但程度不如您指示的那样。
我很好奇地发现了,因为我想让事情进展得更快,而不是更慢:-)
答案 1 :(得分:0)
我也无法通过以下代码调试机智Xdebug 2.8.0:
<?php
phpinfo();
die;
调试器永远不会获得“ die”命令。似乎它以无休止的方式调试“ phpinfo()”。 intelliJidea screenshot
这是一个真正的问题,因为Xdebug 2.6.0构建无法应用于php 7.2和更高版本。