- Grav 插件
- Grav - 插件基础
- Grav - 插件教程
- Grav - 事件钩子
- Grav 管理面板
- Grav - 管理员介绍
- Grav - 管理员仪表盘
- Grav - 配置系统
- Grav - 站点配置
- Grav - 管理面板页面
- Grav - 页面编辑器选项
- Grav - 页面编辑器高级
- Grav 高级
- Grav - 蓝图
- Grav - 性能与缓存
- Grav - 调试与日志记录
- Grav - 命令行界面 (CLI)
- Grav - GPM (Grav 包管理器)
- Grav - 开发
- Grav - 生命周期
- Grav - YAML 语法
- Grav - 表单
- Grav 托管
- Grav - 网络托管
- Grav 故障排除
- Grav - 服务器错误
- Grav - 权限
- Grav 有用资源
- Grav - 面试问题
- Grav - 快速指南
- Grav - 有用资源
- Grav - 讨论
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,最后使用文件。
缓存类型
有 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 变量。
缓存和事件
启用缓存时可以使用事件。这可以为除OnPageContentRaw、OnPageProcessed、OnPageContentProcessed、OnTwigPageVariables和OnFolderProcessed事件之外的所有事件启用。这些事件可用于所有页面和文件夹,并且仅在事件正在处理时才能运行。这些事件不能在页面缓存后运行。