Symfony4 在 Windows 上很慢 - $kernel->terminate($request, $response); 之后会发生什么?
Symfony4 is slow on Windows - What happens after $kernel->terminate($request, $response);?
我刚刚在基于 windows 10 的 symfony 安装中做了一个奇怪的观察。
我总是得到相当令人失望的响应时间,所以我想使用分析器来检查原因。
我立即发现了一个有趣的偏差:虽然分析器将总数加起来约为 1000 毫秒,但浏览器显示 TTFB 约为 5800 毫秒?
我的public\index.php是一样的
https://github.com/symfony/recipes/blob/master/symfony/framework-bundle/4.4/public/index.php
事情是这样的:当我在 $kernel->terminate($request, $response) 之后放置一个 exit() 时;我的浏览器 TTFB 突然变成了 1600 毫秒!!!
这太令人震惊了,因为我一直认为 index.php 中的最后一行之后没有任何反应?
有人可以解释一下,为什么我的 symfony 路由调用在准备就绪后会被阻止 SECONDS?
事实证明,此延迟必须与我的 php.ini 中启用的 xdebug 相关,而 IDE(在我的示例中为 VS CODE)不是 运行 调试器。
当我在 IDE 中打开调试(并删除所有断点)时,TTFB 与 exit() 就位时一样短。
当我关闭 Xdebug 时,它是一样的。
我认为 xdebug 尝试与 IDE 通信(但未成功)必须额外阻止 HTTP 响应 2 - 3 秒。
我刚刚在基于 windows 10 的 symfony 安装中做了一个奇怪的观察。
我总是得到相当令人失望的响应时间,所以我想使用分析器来检查原因。 我立即发现了一个有趣的偏差:虽然分析器将总数加起来约为 1000 毫秒,但浏览器显示 TTFB 约为 5800 毫秒?
我的public\index.php是一样的 https://github.com/symfony/recipes/blob/master/symfony/framework-bundle/4.4/public/index.php
事情是这样的:当我在 $kernel->terminate($request, $response) 之后放置一个 exit() 时;我的浏览器 TTFB 突然变成了 1600 毫秒!!!
这太令人震惊了,因为我一直认为 index.php 中的最后一行之后没有任何反应? 有人可以解释一下,为什么我的 symfony 路由调用在准备就绪后会被阻止 SECONDS?
事实证明,此延迟必须与我的 php.ini 中启用的 xdebug 相关,而 IDE(在我的示例中为 VS CODE)不是 运行 调试器。
当我在 IDE 中打开调试(并删除所有断点)时,TTFB 与 exit() 就位时一样短。 当我关闭 Xdebug 时,它是一样的。
我认为 xdebug 尝试与 IDE 通信(但未成功)必须额外阻止 HTTP 响应 2 - 3 秒。