为什么Symfony3这么慢?

The*_*kus 1 symfony

我安装了Symfony3框架标准版.我正在尝试打开主页(app.php prod),它加载300-400ms.这是我的探查器信息: 在此输入图像描述 我也用php7.

为什么这么久?

Pre*_*iel 7

Hewwo TheMrbikus~

您可以尝试优化Zend OPCache.以下是一些推荐的设置

opcache.revalidate_freq
基本上,代码缓存过期的频率(以秒为单位)并检查代码是否已更改.0意味着它会检查每个请求的PHP代码(这会增加许多统计系统调用).在开发环境中将其设置为0.由于下一个设置,生产无关紧要.

opcache.validate_timestamps
启用此选项后,PHP将检查每个opcache.revalidate_freq值的文件时间戳.
当它被禁用时,将opcache.revaliate_freq被忽略,并且永远不会检查PHP文件以获取更新的代码.因此,如果您修改代码,在您重新启动或重新加载PHP之前,更改将不会实际运行(您强制重新加载kill -SIGUSR2).
是的,这是一个痛苦的屁股,但你应该使用它.为什么?在更新或部署代码时,新代码文件可能会与旧代码混合在一起 - 结果未知.地狱不安全

opcache.max_accelerated_files
控制一次最多可以在内存中保存多少PHP文件.重要的是,您的项目比您设置的任何文件都要少.对于~6000个文件的代码库,我使用素数8000来表示maxacceleratedfiles.
您可以运行find . -type f -print | grep php | wc -l以快速计算代码库中的文件数.

opcache.memory_consumption
默认值为64MB.您可以使用函数opcachegetstatus()来告诉opcache正在消耗多少内存以及是否需要增加数量.

opcache.interned_strings_buffer
一个非常整洁的设置与0文档.PHP使用一种称为字符串实习的技术来提高性能 - 例如,如果你的代码中有1000个字符串"foobar",内部PHP将为这个字符串存储1个不可变变量,并为其他字符串使用指向它的指针你使用它999次.凉.
此设置将其提升到下一级别 - 而不是为每个SINGLE php-fpm进程提供这些不可变字符串的池,此设置在所有php-fpm进程中共享它.它可以节省内存并提高性能,尤其是在大型应用程序中
该值以兆字节为单位,因此将其设置为"16"表示16MB.默认值很低,为4MB.

opcache.fast_shutdown
另一个有趣的设置没有有用的文档."允许更快的关机".
哦好的.这样可以帮助我.这实际上做的是提供一种更快的机制,用于在单个请求结束时调用代码中的析构函数,以加快响应并回收php worker,以便他们为下一个传入请求做好准备.
将其设置为1并将其打开.

opcache=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=8000
opcache.validate_timestamps=0
opcache.revalidate_freq=0
opcache.fast_shutdown=1
Run Code Online (Sandbox Code Playgroud)

我希望它能帮助你提高表现

亲切的,
Preciel.