我遵循了 sylius 的作曲家安装说明,并让我的本地副本正常工作。问题是当我转到 local/app_dev.php 时,加载需要很长时间,12-18 秒。但是探查器显示的时间要快得多...
安装说明也没有解释如何让 local/app.php 工作或生产环境。任何信息都有帮助 :)。
我遵循了 sylius 的作曲家安装说明,并让我的本地副本正常工作。问题是当我转到 local/app_dev.php 时,加载需要很长时间,12-18 秒。但是探查器显示的时间要快得多...
安装说明也没有解释如何让 local/app.php 工作或生产环境。任何信息都有帮助 :)。
首先让我感谢@Florian 的链接以及让我挖掘一点的推动:)。
按照sylius 入门页面上的说明进行操作时:
$ wget http://getcomposer.org/composer.phar
$ composer.phar create-project sylius/sylius -s dev
$ cd sylius
$ app/console sylius:install
默认情况下,您使用 config_dev.yml 文件进行安装。这会将您的数据库设置为 {dbname}_dev,并在 app_dev.php 中进行调试。当调试打开时,“缓存文件会在每个请求上动态重建”。这就是导致速度慢的原因。
关于使用 app.php(生产环境),您可以运行 app/console sylius:install -e prod。这将设置一个常规数据库,您可以使用 app.php。
谜团已揭开 :)。
有用的资源: 如何掌握和创建新环境 - Symfony2
如果您在 Windows 上,请确保按照 SensioDistributionBundle 的建议在 php.ini 中将“realpath_cache_size”设置为至少 5M。像这样:
; php.ini
realpath_cache_size = 5M
在我在开发环境中运行的 Sylius 安装中,它将加载时间从 ~15 秒减少到 ~2 秒。
为了进一步减少加载时间,您可以考虑使用 WinCache https://sourceforge.net/projects/wincache/。在使用 PHP 的内置 Web 服务器运行 Sylius 时,我使用以下设置:
; php.ini
[wincache]
wincache.enablecli=1
wincache.filecount=16384
WinCache 似乎与 Sylius 的开发环境配合得很好。
我在具有默认同步文件夹设置的 Vagrant 设置上运行 Sylius,发现它非常慢,最多加载 45 秒!其他 Small Symfony 项目并没有那么糟糕,所以认为它只是 Sylius,然后我读到 Vagrant 上的同步文件夹设置与 Linux 系统上可用的 NFS 类型相比要快得多,它从 40 秒减少到 4 秒!
因此,如果您使用 Vagrant 并发现它很慢,请确保将同步文件夹设置为 NFS。
Sylius 在生产和开发模式下都比 Symfony 慢得多,尽管它是建立在 Symfony 之上的。原因是它的 ResourceBundle。我确信有一些方法可以在生产中加速它,但无论如何它在开发时非常缓慢。
NFS 将在无业游民的情况下为您提供帮助,但在较大的项目中您仍然会发现它很慢。Docker 在 MACOSX 上的表现更差。如果您使用的是 Linux,我认为 docker 会为开发者踢屁股。此外,如果您使用 PHP<7,请移至 7.0(更高版本与 Sylius atm 存在一些问题),即使在开发环境中,您也会看到性能的巨大提升。
还要给你的 Vagrant 机器多一些内存