📜  Grav-性能和缓存

📅  最后修改于: 2020-10-25 05:30:26             🧑  作者: Mango


在本章中,我们将了解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库,该库支持以下内容-

  • 自动(默认)-它自动使用默认选项。

  • 文件-它指定存在于缓存/文件夹中的缓存文件。

  • 装甲运兵车

  • XCache

  • 记忆快取

  • 雷迪斯

  • WinCache的

默认情况下,Grav使用自动设置。它将尝试APC,然后尝试WinCache,XCache,最后使用File。

缓存类型

缓存有5种类型-

  • 将YAML配置缓存到PHP中。

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

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

  • 图像缓存以获取媒体资源。

  • CSS和jQuery使用流水线进行资产缓存。

存储在/ cache文件夹中的YAML配置的缓存。图像缓存将其图像存储在/ images文件夹中。核心Grav缓存的配置选项存储在user / config / system.yml文件中,如下所示-

cache:
   enabled: true
   check:
      method: file
   driver: auto
   prefix: 'g'
  • enabled选项通过将其设置为true来启用缓存。

  • 方法选项检查页面(例如文件或文件夹)中的更新。

  • 驱动程序选项指定不同类型的缓存选项,例如自动,文件,APC,XCache,Memcache,Redis或WinCache。

  • prefix选项定义高速缓存前缀字符串。

内存缓存选项

如果使用的是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来启用细枝缓存。

  • debug选项启用细枝调试。

  • auto_reload选项用于通过将其设置为true来重新加载更改。

  • autoescape选项用于自动转义树枝变量。

缓存和事件

启用缓存时可以使用事件。可以为除OnPageContentRawOnPageProcessedOnPageContentProcessedOnTwigPageVariablesOnFolderProcessed事件之外的所有事件启用此功能。这些事件可以在所有页面和文件夹上使用,并且只能在事件正在处理时运行。缓存页面后,将无法运行这些事件。