php - Symfony 4 在 Windows 上非常慢

标签 php performance symfony windows-10 symfony4

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

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

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

我在Symfony doc中搜索了类似的问题和问题和论坛,我已经测试了推荐的优化(增加一些 opcache 的值,启用 APCu,禁用 xdebug,添加 php.ini 中的 realpath_cache_size,使用 Composer Class Map Functionality)但在我的例子中它没有改变任何东西。

这是我的 APCu phpinfo:APCu和 Opcache: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 或等待年龄:)

enter image description here

关于php - Symfony 4 在 Windows 上非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48346427/

相关文章:

php - MYSQL 不显示日期和时间已过的结果

java - 识别PDF、DOC等格式的字段并将其导出到数据库

javascript - 小数幂的计算方法

php - 显示真实内容,而不是 HTML 标签和内联 CSS 包裹的内容

php - 存储到期日期的最佳方式是什么?

java - 接口(interface):php 与 java

java - apache HttpClients 的奇怪瓶颈(同步和异步)

java - 工作灯 : Performance of calling java static method vs object creation

php - Symfony 3 提交表单的动态生成不起作用

Symfony2 : Storing users, 角色、角色层次结构和数据库中的访问控制