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