性能和缓存(Performance & Caching)
在本章中,我们将了解Grav中的性能和缓存概念。
表现(Performance)
术语“性能”指的是系统性能,使其能够处理更高的系统负载并修改系统以处理更高的负载。
考虑以下与Grav表现有关的要点 -
要获得更好的opcache性能,可以使用PHP opcache和usercache 。 opcache适用于PHP 5.4,使用PHP 5.5,PHP 5.6和Zend opcache可以更快地运行usercache。
SSD (固态硬盘)使用闪存并且没有移动部件。 有时缓存将存储在用户缓存中或存储为文件。 因此SSD驱动器可以提供更好的性能。
虚拟机是在云计算技术下托管提供商的最佳方式。 您可以指定资源而无需与物理设备交互。 Native hosting比虚拟机更快。 Grav在虚拟机上运行得更好,但为了获得最佳性能,您可以使用本机托管选项。
Grav具有faster memory ,其缓存使用大量内存,可在服务器上提供更好的性能。 与其他平台相比,它使用更少的内存。
Grav使用shared hosting服务器上的共享主机来共享内容。 共享托管以低成本提供,有时可能会导致服务器上的内容变慢。
多核处理器用于更快地处理多个任务。 高级处理器比这些处理器更好,这有助于用户完成任务。
缓存 (Caching)
通常,高速缓存是高速缓存存储器中的存储数据。 缓存机制使Grav更快,浏览器可以从缓存而不是原始服务器获取文件,从而节省时间和额外的网络流量。
Grav使用Doctrine Cache库,它支持以下内容 -
自动(默认) - 它自动使用默认选项。
文件 - 它指定cache/文件夹中存在的cache/文件。
APC
XCache
Memcache
Redis
WinCache
默认情况下,Grav使用自动设置。 它将尝试APC,然后是WinCache,XCache,最后它使用File。
缓存类型
有5种类型的缓存 -
YAML配置缓存到PHP中。
页面对象的核心Grav缓存。
Twig将模板文件缓存为PHP类。
媒体资源的图像缓存。
使用流水线技术对CSS和jQuery进行资产缓存。
存储在/cache文件夹中的YAML配置的/cache 。 图像缓存将其图像存储在/images文件夹中。 核心Grav缓存的配置选项存储在user/config/system.yml文件中,如下所示 -
cache:
enabled: true
check:
method: file
driver: auto
prefix: 'g'
enabled选项通过将其设置为true来enabled缓存。
method选项检查页面中的更新,例如文件或文件夹。
driver选项指定不同类型的缓存选项,如Auto,File,APC,XCache,Memcache,Redis或WinCache。
prefix选项定义缓存前缀字符串。
Memcache选项
如果您使用的是memcached server ,则需要使用user/config/system.yml file的memcache驱动程序添加一些额外的配置选项。 可以在cache: group下定义这些选项。
cache:
...
...
memcache:
server:localhost
port: 8080
Redis选项
如果您使用的是redis ,则需要在user/config/system.yml file使用redis驱动程序添加一些额外的配置选项。 可以在cache: group下定义这些选项。
cache:
...
...
redis:
server:localhost
port: 8080
Twig模板使用自己的缓存机制,在user/config/system.yml文件中使用user/config/system.yml驱动程序。
twig:
cache: true
debug: true
auto_reload: true
autoescape: false
它有一些选项,如 -
cache选项通过将twig缓存设置为true来启用它。
debug选项启用twig调试。
auto_reload选项用于通过将更改设置为true来重新加载更改。
autoescape选项用于自动转义树枝变量。
缓存和事件
启用缓存时可以使用事件。 除OnPageContentRaw , OnPageProcessed , OnPageContentProcessed , OnTwigPageVariables和OnFolderProcessed事件外,可以为所有事件启用此功能。 这些事件可以在所有页面和文件夹上使用,并且只能在事件处理时运行。 页面缓存后无法运行这些事件。