Grav - 性能与缓存



本章将讲解 Grav 中性能和缓存的概念。

性能

性能是指系统能够处理系统上更高负载的能力,以及修改系统以处理更高负载的能力。

考虑以下与 Grav 性能相关的几点:

  • 为了获得更好的 Grav 性能,您可以使用 PHP opcacheusercache。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,最后使用文件。

缓存类型

有 5 种缓存类型:

  • 将 YAML 配置缓存到 PHP 中。

  • 页面对象的 Grav 核心缓存。

  • 将模板文件作为 PHP 类进行 Twig 缓存。

  • 媒体资源的图像缓存。

  • 使用管道技术的 CSS 和 jQuery 的资源缓存。

存储在/cache文件夹中的 YAML 配置缓存。图像缓存将其图像存储在/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 变量。

缓存和事件

启用缓存时可以使用事件。这可以为除OnPageContentRawOnPageProcessedOnPageContentProcessedOnTwigPageVariablesOnFolderProcessed事件之外的所有事件启用。这些事件可用于所有页面和文件夹,并且仅在事件正在处理时才能运行。这些事件不能在页面缓存后运行。

广告
© . All rights reserved.