微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Symfony4 在 Windows 上运行缓慢 - 在 $kernel->terminate($request, $response); 之后会发生什么?

如何解决Symfony4 在 Windows 上运行缓慢 - 在 $kernel->terminate($request, $response); 之后会发生什么?

我刚刚在基于 Windows 10 的 symfony 安装中做了一个奇怪的观察。

我总是得到相当令人失望的响应时间,所以我想使用分析器来检查原因。 我立即发现了一个有趣的偏差:虽然分析器将总数加起来约为 1000 毫秒,但浏览器显示 TTFB 约为 5800 毫秒?

我的 public\index.PHPhttps://github.com/symfony/recipes/blob/master/symfony/framework-bundle/4.4/public/index.php

事情是这样的:当我在 $kernel->terminate($request,$response); 之后放置一个 exit();我的浏览器 TTFB 突然出现在 1600 毫秒!!!

这太令人兴奋了,因为我一直认为在 index.PHP 的最后一行之后什么也没有发生? 有人可以解释一下,为什么我的 symfony 路由调用在准备好后被阻止了几秒钟?

解决方法

事实证明,这种延迟必须在我的 php.ini 中启用 xdebug 时执行某些操作,而 IDE(在我的示例中为 VS CODE)没有运行调试器。

当我在 IDE 中打开调试(并删除所有断点)时,TTFB 与 exit() 就位时一样短。 当我关闭Xdebug时,它是一样的。

我认为 xdebug 尝试与 IDE 通信(但没有成功)必须阻止 HTTP 响应额外的 2 - 3 秒。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。