设备磁盘缓存
加载远程内容的游戏会把校验过的字节写进设备上的磁盘缓存, 这样更新后的资源下次启动时无需联网就能加载。放着不管的话,缓存只会越来越大:每次更新都会把上一版的文件留下。 性能分析器里的设备磁盘缓存一节会显示存了什么、哪些可以安全删除,并把缓存清理到预算以内—— 而且绝不会删掉游戏可能还需要的版本。
哪些平台有缓存
Section titled “哪些平台有缓存”| 目标 | 磁盘缓存 |
|---|---|
| 桌面 | 受管理——可以列出、统计和清理。 |
| 小游戏、原生(iOS / Android) | 宿主的文件接口能列出并删除文件时受管理;否则为仅存储(见下)。 |
| Web | 没有。下次启动从 CDN 重新拉取。 |
这一节会告诉你连接的宿主处于三种状态里的哪一种:
- 受管理——下面全部控件可用。
- 仅存储——宿主能存缓存字节,但不能列出或安全删除,所以看不到用量。
- 不可用——该平台没有受管理的磁盘缓存。
连接设备(见热更新),打开性能分析器,把性能分析源设为设备。 设备磁盘缓存一节出现在设备控件下方。选中设备时读取一次;目录扫描太贵,不会轮询,需要刷新就点重新扫描。
一行汇总:
资源 已用 · 受保护 受保护 · 可释放 可释放 · 索引 索引
- 资源——磁盘上缓存的资产字节数。
- 受保护——游戏可能还要用的字节:属于受保护版本的文件,加上归属未知的文件。
- 可释放——其余所有;清理只能释放这部分。
- 索引——缓存自己的记账文件,单独统计。
下面是缓存认识的每个版本一行,给出修订号、保留的原因,以及它有多少文件在磁盘上缺失:
| 标签 | 含义 |
|---|---|
| 当前版本 | 游戏正在运行的修订。 |
| 待提交 | 已发现并暂存、但还没提交的更新。 |
| 回退版本 | 上一个修订,留着让失败的更新能退回。 |
| 下次启动 / 保留版本 | 你主动保留的修订。 |
| 旧版本 | 没有任何东西保护它——它的文件可释放。 |
归属未知的文件(缓存开始追踪之前就有的)会受保护,直到一次校验过的写入确认它们是什么;存档永远不参与清理。
保留一个版本
Section titled “保留一个版本”对运行中构建自己的版本,保留版本会预留一个修订——比如 QA 正在测的那个构建——这样当前 / 回滚这一对前进时不会把它释放。 取消额外保留把它还回去。保留与自动保护分开存放,所以更新不会悄悄丢掉你保留的修订。
- 设资源预算,单位 MiB(默认 128)。
- 预览清理——显示会释放多少文件、多少字节,不删除任何东西。
- 清理未保护资源——按最近最少使用的顺序删除,直到缓存符合预算,并报告释放的字节数和删除失败的数量。
只有未受保护的文件才会成为候选。如果受保护文件本身就超过预算,面板会说明并保留它们—— 预算是目标,从来不是删除游戏所需版本的理由。如果清理释放了空间但没能存下更新后的索引,面板会说明;下次扫描会对齐它。