我已经在 Windows 10 上使用 Symfony 进行我的项目(SF2、SF3)几年了,最近我转移到 Symfony 4 来构建一个新项目但性能是灾难性的。
Symfony 初始化时间为 5 到 25 秒,如本例所示
控制台也是如此:例如cache:clear
可以持续1分钟。
我在Symfony doc中搜索了类似的问题和问题和论坛,我已经测试了推荐的优化(增加一些 opcache
的值,启用 APCu
,禁用 xdebug
,添加
,使用 Composer Class Map Functionality)但在我的例子中它没有改变任何东西。php.ini
中的 realpath_cache_size
这是我的 APCu phpinfo:和 Opcache:
我正在使用 PHP 7.1.9、Apache 2.4.27、MariaDB 10.2.8。
有没有人有同样的问题和/或想法?
最佳答案
* 更新 *
我已经为这个问题找到了一个更好的解决方案。那就是……vagrant .我知道你在想什么 - “Windows 上的 Vagrant?哈哈。”。但这里发生了变化 - 现在有一个 plugin for NFS folder sync on windows .我已经在两台 win10 电脑上测试过它,到目前为止一切顺利。它对我来说似乎非常稳定,而且我的响应时间低至 40-50 毫秒(当然 symfony 正在重新生成/预热缓存等的时间除外). Composer 安装、IDE 同步和其他一切都工作正常。
除此之外,我在 ubuntu bionic virtualbox VM 上有相当标准的设置,包括 nginx 和 php7.2-fpm。没有任何特别之处或优化。
如果你不太喜欢流浪,我仍然在下面留下我的旧答案以供引用。祝你好运,编码愉快!
*//更新 *
Symfony 在 Windows 上的性能一直很差,至少对我来说是这样。
启用/禁用 opcache/apc/xdebug,调整 realpath 或任何可以 - 可能 - 使事情变得更好,至少一点点,但根据我的经验,从来没有真正起作用。 还有...谁愿意在没有调试器的情况下工作?我认为这不是解决方案。
我的建议是完全删除 XAMPP/WAMP(或者您已经安装了当前的 php 堆栈)并安装 nginx + php-fpm。
您可以手动完成 - for example - 或者通过安装 WinNMP .
WinNMP 是一个非常类似于 XAMPP/WAMP 的工具,但是基于 nginx。它带有 Nginx、PHP、MySQL 和 Redis。
唯一的缺点是您必须学习如何配置 nginx - 如果您不知道 - 但无论如何您应该学习。 Nginx 的性能更高,因此 - 在大多数情况下 - 更适合生产环境,因此它在未来可能会有所帮助。
无论如何,这是我发现在 Windows 上使用 symfony 的唯一可行解决方案,我不必在每次刷新时禁用 xdebug 或等待年龄:)
关于php - Symfony 4 在 Windows 上非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48346427/