我安装了Symfony3框架-标准版本.我试图打开主页(app.php prod),它加载了300-400 is。这是我的分析器信息:
此外,我还使用php7。
为什么这么长?
发布于 2016-08-13 12:08:51
您可以尝试优化Zend OPCache。下面是一些推荐的设置
opcache.revalidate_freq
基本上,应该多久(以秒为单位)代码缓存过期,并检查您的代码是否已经更改。0意味着它会检查每个请求的PHP代码(这会增加很多syscalls)。在您的开发环境中将其设置为0。生产并不重要,因为下一个设置。
opcache.validate_timestamps
当启用该功能时,PHP将根据您的opcache.revalidate_freq
值检查文件时间戳。
当它被禁用时,opcache.revaliate_freq
就会被忽略,并且永远不会检查更新的代码。因此,如果修改代码,这些更改将在重新启动或重新加载PHP (强制使用kill -SIGUSR2
重新加载)之前实际上不会运行。
是的,这是一种痛苦,但你应该用它。为什么?当您正在更新或部署代码时,新代码文件可以与旧代码文件混合--结果是未知的。太不安全了
opcache.max_accelerated_files
控制最多可以同时在内存中保存多少PHP文件。重要的是,您的项目有更少的文件,而不是您设置这一点。对于大约6000个文件的代码基,我使用质数8000来表示maxacceleratedfiles。
您可以运行find . -type f -print | grep php | wc -l
来快速计算代码库中的文件数。
opcache.memory_consumption
默认为64 is。您可以使用opcachegetstatus()函数来判断内存opcache的消耗量以及是否需要增加内存的数量。
opcache.interned_strings_buffer
一个非常整洁的设置,类似于0文档。PHP使用一种名为string interning的技术来提高性能--例如,如果您的代码中有1000次字符串"foobar“,内部PHP将为该字符串存储一个不可变变量,并在其他999次使用该字符串时只使用指向它的指针。凉爽的。
此设置将它提升到下一个级别,而不是为每个php-fpm进程提供一个不可变字符串池,而是在您的所有php-fpm进程之间共享它。它节省了内存,提高了性能,特别是在大型应用程序中。
该值以兆字节为单位,因此为16 so将其设置为"16“。默认值为4MB。
opcache.fast_shutdown
另一个有趣的设置没有有用的文档。“允许更快地关闭”。
哦好吧。那样对我有帮助。实际上,这提供了一种更快的机制,用于在单个请求的末尾调用代码中的析构函数,以加快响应和回收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
我希望这将有助于提高你的表现。
编辑
您可能还想看看这个答案:
发布于 2016-08-12 21:53:34
TheMrbikus,尝试使用以下元素进行一些优化:
参考资料:http://symfony.com/doc/current/performance.html
发布于 2016-08-13 07:22:07
电子邮件发送过程,并且可能在表单呈现操作期间减速.创建一个空白测试控制器。
https://stackoverflow.com/questions/38926751
复制相似问题