性能

编辑该页面

警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 4.4,不再维护。

这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。

性能

欧宝娱乐app下载地址Symfony是快速,对开箱即用的。然而,你可以让它更快如果你优化你的服务器和你的应用程序是解释在以下性能清单。

性能检查表

使用这些清单来验证您的应用程序和服务器配置为最高性能:

安装APCu Polyfill如果您的服务器使用APC

如果你的生产服务器仍然使用遗留APC PHP扩展而不是OPcache,安装APCu Polyfill组件在应用程序中启用兼容APCu PHP函数和开启支持先进Symfony特性,比如APCu缓存适配器。欧宝娱乐app下载地址

服务容器转储到一个文件

4.4

container.dumper.inline_factories参数是在Symfony 4.4中引入的。欧宝娱乐app下载地址

欧宝娱乐app下载地址Symfony编译服务容器默认为多个小文件。设置这个参数真正的要编译整个集装箱到单个文件,这可能提高性能在使用“类预压”PHP 7.4或更新的版本:

  • YAML
  • XML
  • PHP
1 2 3 4
#配置/ services.yaml参数:#……container.dumper.inline_factories:真正的

使用OPcache字节代码缓存

OPcache存储编译PHP文件,避免为每个请求重新编译它们。有一些字节代码缓存可用的,但是PHP 5.5, PHP了OPcache内置的。对于旧版本,最广泛使用的字节代码缓存APC

使用OPcache类预加载

4.4

生成预加载的功能,文件是在Symfony 4.4中引入的。欧宝娱乐app下载地址

从PHP 7.4开始,OPcache可以编译和加载类在启动并使其可用于所有请求,直到服务器重启,显著提高性能。

在容器(例如运行时编译缓存:清晰命令),Symfon欧宝娱乐app下载地址y会生成一个文件preload.php配置/目录与预加载的类列表。

您可以配置PHP使用这种预加载文件:

1 2 3 4 5
;php . iniopcache.preload= /道路/ /项目/ config / preload.php;opcache.preload所需:opcache.preload_user= www-data

如果这个文件丢失,运行这个命令来更新Symfony Flex配方:欧宝娱乐app下载地址symfony / framework-bund欧宝娱乐app下载地址le作曲家食谱:更新

配置OPcache最大性能

默认OPcache配置不适合Symfony应用程序,所以建议更改这些设置如下:欧宝娱乐app下载地址

1 2 3 4 5 6
;php . ini;最大内存OPcache可以用来存储编译PHP文件opcache.memory_consumption=256年;最大数量的文件可以存储在缓存中opcache.max_accelerated_files=20000年

不检查PHP文件的时间戳

在生产服务器,PHP文件应该不会改变,除非部署新应用程序版本。然而,默认情况下OPcache检查缓存文件缓存以来已经改变了他们的内容。这张支票介绍了一些开销,可以避免如下:

1 2
;php . iniopcache.validate_timestamps=0

每个部署后,您必须清空,重新生成缓存OPcache。否则你不会看到更新的应用程序。鉴于在PHP中,CLI和网络流程不共享相同的OPcache,你不能清晰的web服务器OPcache通过执行一些命令在您的终端。这是一些可能的解决方案:

  1. 重新启动web服务器;
  2. 调用apc_clear_cache ()opcache_reset ()函数通过web服务器(即通过执行这些脚本,你在网络上);
  3. 使用cachetool实用程序控制APC和OPcache CLI。

配置PHPrealpath缓存

当一个相对路径转换为其真正的绝对路径,PHP缓存来提高性能的结果。打开许多PHP文件的应用程序,比如Symfony项目,至少应该使用这些值:欧宝娱乐app下载地址

1 2 3 4 5 6
;php . ini;最大内存分配存储结果realpath_cache_size=4096年K;保存结果10分钟(600秒)realpath_cache_ttl=600年

请注意

PHP禁用realpath缓存的时候open_basedir配置选项启用。