为什么Symfony3这么慢?

为什么Symfony3这么慢?,symfony,Symfony,我安装了Symfony3框架标准版。我试图打开主页(app.php prod),它的加载速度为300-400ms。 这是我的探查器信息: 我也使用php7 为什么它这么长?对于RBIKUS,请尝试使用以下元素进行优化: 使用APC 使用引导文件 参考资料:Thermbikus,尝试使用以下元素进行优化: 使用APC 使用引导文件 参考资料: 使用OPCache PHP7 使用ApachePHP-FPM 电子邮件发送过程,并且在表单呈现操作期间可能会减慢。创建一个空白的测试控制器 使用

我安装了Symfony3框架标准版。我试图打开主页(app.php prod),它的加载速度为300-400ms。 这是我的探查器信息: 我也使用php7


为什么它这么长?

对于RBIKUS,请尝试使用以下元素进行优化:

  • 使用APC
  • 使用引导文件

参考资料:

Thermbikus,尝试使用以下元素进行优化:

  • 使用APC
  • 使用引导文件
参考资料:

  • 使用OPCache PHP7
  • 使用ApachePHP-FPM
电子邮件发送过程,并且在表单呈现操作期间可能会减慢。创建一个空白的测试控制器

  • 使用OPCache PHP7
  • 使用ApachePHP-FPM

电子邮件发送过程,并且在表单呈现操作期间可能会减慢。创建一个空白的测试控制器

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

opcache.revalidate\u freq

基本上就是说,代码缓存应该多长时间过期一次(以秒为单位),并检查代码是否已更改。0意味着它会在每个请求中检查PHP代码(这会添加大量stat syscalls)。在开发环境中将其设置为0。生产不重要,因为下一个设置

opcache.validate\u时间戳

启用此选项后,PHP将根据您的
opcache.revalidate\u freq
值检查文件时间戳。
当它被禁用时,
opcache.revaliate\u freq
被忽略,PHP文件永远不会检查更新的代码。因此,如果修改代码,在重新启动或重新加载PHP(使用
kill-SIGUSR2
强制重新加载)之前,更改不会实际运行 是的,这是一个痛苦的屁股,但你应该使用它。为什么?在更新或部署代码时,新代码文件可能会与旧代码文件混合—结果未知。这是非常不安全的

opcache.max\u加速文件

控制一次最多可以在内存中保存多少PHP文件。重要的是,您的项目的文件比您设置的文件少。对于大约6000个文件的代码库,我使用质数8000表示maxacceleratedfiles。
您可以运行
find-键入f-print | grep php | wc-l
,快速计算代码库中的文件数

opcache.memory\u消耗

默认值为64MB。您可以使用函数opcachegetstatus()来说明opcache消耗了多少内存,以及是否需要增加内存量

opcache.interned\u strings\u buffer

一个非常整洁的设置,有0个文档。PHP使用一种称为string interning的技术来提高性能——例如,如果您的代码中有1000次字符串“foobar”,PHP将在内部为该字符串存储1个不可变变量,并在其他999次使用时只使用指向该字符串的指针。酷。
此设置将其带到下一个级别—此设置将在所有php fpm进程中共享这些不可变字符串,而不是为每个php fpm进程创建一个不可变字符串池。它可以节省内存并提高性能,特别是在大型应用程序中。
该值以兆字节为单位设置,因此将16MB设置为“16”。默认值为4MB

opcache.fast\u关闭

另一个有趣的设置,没有有用的文档。“允许更快的关机”。
哦,好的。这样对我有帮助。实际上,这提供了一种更快的机制,用于在单个请求结束时调用代码中的析构函数,以加快响应速度并回收php工作进程,从而使它们更快地为下一个传入请求做好准备。
将其设置为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
我希望这将有助于提高你的表现

[编辑]

您可能还想看看这个答案:

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

opcache.revalidate\u freq

基本上就是说,代码缓存应该多长时间过期一次(以秒为单位),并检查代码是否已更改。0意味着它会在每个请求中检查PHP代码(这会添加大量stat syscalls)。在开发环境中将其设置为0。生产不重要,因为下一个设置

opcache.validate\u时间戳

启用此选项后,PHP将根据您的
opcache.revalidate\u freq
值检查文件时间戳。
当它被禁用时,
opcache.revaliate\u freq
被忽略,PHP文件永远不会检查更新的代码。因此,如果修改代码,在重新启动或重新加载PHP(使用
kill-SIGUSR2
强制重新加载)之前,更改不会实际运行 是的,这是一个痛苦的屁股,但你应该使用它。为什么?在更新或部署代码时,新代码文件可能会与旧代码文件混合—结果未知。这是非常不安全的

opcache.max\u加速文件

控制一次最多可以在内存中保存多少PHP文件。重要的是,您的项目的文件比您设置的文件少。对于大约6000个文件的代码库,我使用质数8000表示maxacceleratedfiles。
您可以运行
find-键入f-print | grep php | wc-l
,快速计算代码库中的文件数

opcache.memory\u消耗

默认值为64MB。您可以使用函数opcachegetstatus()来说明opcache消耗了多少内存,以及是否需要增加内存量

opcache.interned\u strings\u buffer

一个非常整洁的设置,有0个文档。PHP使用一种称为string interning的技术来提高性能——例如,如果您的代码中有1000次字符串“foobar”,PHP将在内部为该字符串存储1个不可变变量,并在其他999次使用时只使用指向该字符串的指针。酷。
这个设置将它带到下一个级别,而不是拥有一个由这些不可变字符串组成的池