Symfony 4在Windows上速度极慢

时间:2018-01-19 17:24:02

标签: php performance symfony windows-10 symfony4

我已经在 Windows 10 上为我的项目使用了Symfony几年(SF2,SF3),最近我转到 Symfony 4 来构建一个新项目,但表演是灾难性的。

Symfony初始化时间为5到25秒,如本例所示 example

控制台也是如此:例如cache:clear可以持续1分钟。

我在Symfony doc和论坛中搜索了类似的问题和问题,并且我测试了推荐的优化(增加​​opcache的某些值,启用APCu,禁用{{1在xdebug中添加realpath_cache_size,使用Composer类映射功能)但在我的情况下它不会改变任何内容。

以下是我对APCu的phpinfo:APCu和Opcache:opcache

我使用的是PHP 7.1.9,Apache 2.4.27,MariaDB 10.2.8。

是否有人有同样的问题和/或想法?

6 个答案:

答案 0 :(得分:2)

*更新*

我为这个问题找到了一个更好的解决方案。那就是... https://www.quora.com/How-do-I-get-a-streaming-URL-for-Tunein。我知道您在想什么-“ Windows上无所事事?大声笑。”。但是,这里发生了变化-现在有一个vagrant。我已经在两台win10电脑上对其进行了测试,到目前为止效果很好。对我来说似乎很稳定,我得到的响应时间 低至40-50毫秒 (当然,除了symfony重新生成/预热缓存的时间等) )。 Composer的安装,IDE同步和其他内容也都可以正常工作。

此外,我在ubuntu仿生virtualbox虚拟机上具有由nginx和php7.2-fpm组成的相当标准的设置。没什么特别的或没有任何优化的。

如果您不打算流浪,我仍然在下面留下我的较早答案。祝你好运,编码愉快!

* //更新*

Symfony一直以来在Windows上的性能一直很差,至少对我而言是如此。

启用/禁用opcache / apc / xdebug,调整realpath或任何可能的方法-至少可以使事情变得更好,至少一点点,但从我的经验来看,它们从未真正起作用。 那...到底谁想在没有调试器的情况下工作?在我看来,这不是解决方案。

我的建议是完全删除XAMPP / WAMP(或者,但是您已经安装了当前的php堆栈)并安装了nginx + php-fpm。

您可以手动进行操作-plugin for NFS folder sync on windows-或安装for example

WinNMP是非常类似于XAMPP / WAMP的工具,但基于nginx。它带有Nginx,PHP,MySQL和Redis。

唯一的缺点是您必须学习如何配置nginx(如果您不知道),但是无论如何您都应该这样做。 Nginx的性能更高,因此-在大多数情况下-更适合生产环境,因此将来可能会有所帮助。

无论如何,这是我发现不必在每次刷新时都禁用xdebug或等待年龄的Windows上使用symfony的唯一可行解决方案:)

WinNMP

答案 1 :(得分:0)

  • 您是否正在使用localhost连接到数据库(或其他任何数据库)?将其更改为127.0.0.1

  • 如果配置不正确,JMS DI Extra捆绑软件可以在Windows上执行此操作。

  • 其他人提到过xdebug和realpath_cache_size,它们也是常见的罪魁祸首。

答案 2 :(得分:0)

关闭WAMP(或至少关闭Apache)并使用 php bin /控制台服务器:运行

答案 3 :(得分:0)

我遇到了一个Symfony问题,每个请求的初始化需要3-5秒,这使得本地开发非常缓慢。我尝试了所有改进措施(php.ini设置更改,php升级等),最后我通过在xDebug中启动Symfony进行了逐步调试,发现每个页面请求都在重建dev缓存,并且触发了文件services.yaml缓存重建。

当我查看Services.yaml文件时,我意识到修改的时间是将来的方式,因为我正在测试时间更改,并将计算机时间移到了将来,并在此期间保存了services.yaml文件。当我在当前时间重新保存文件时,它停止强制每次重新构建缓存。

答案 4 :(得分:0)

在 Windows 上,我推荐 WSL2。您可以安装 Apache2 和 Mysql 并为您的项目设置一个虚拟主机。它的运行速度明显快于内置服务器。

答案 5 :(得分:-1)

在这里,我有使用XAMPP的Windows 10 Professional(尝试php 5和php 7,无所谓)。

我还尝试将内置服务器与php bin /控制台服务器一起使用:运行

我正在使用json响应控制器,它需要大约30到45秒的运行时间,有时甚至需要一分钟以上的时间来处理。我的Api请求甚至返回超时错误。

此外,我对php bin / console进行的每项操作都非常缓慢。.因此,我认为XAMMP中的Apache不仅如此,而且PHP捆绑了它。

我刚刚从http://windows.php.net安装了php-7-2软件包,现在它的工作效果要好得多。响应时间最多为3-4秒。

所以不要浪费时间使用XAMPP ...只需使用原始的PHP和Apache,就可以了。