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.