跳转到内容

设备磁盘缓存

加载远程内容的游戏会把校验过的字节写进设备上的磁盘缓存, 这样更新后的资源下次启动时无需联网就能加载。放着不管的话,缓存只会越来越大:每次更新都会把上一版的文件留下。 性能分析器里的设备磁盘缓存一节会显示存了什么、哪些可以安全删除,并把缓存清理到预算以内—— 而且绝不会删掉游戏可能还需要的版本。

目标 磁盘缓存
桌面 受管理——可以列出、统计和清理。
小游戏、原生(iOS / Android) 宿主的文件接口能列出并删除文件时受管理;否则为仅存储(见下)。
Web 没有。下次启动从 CDN 重新拉取。

这一节会告诉你连接的宿主处于三种状态里的哪一种:

  • 受管理——下面全部控件可用。
  • 仅存储——宿主能存缓存字节,但不能列出或安全删除,所以看不到用量。
  • 不可用——该平台没有受管理的磁盘缓存。

连接设备(见热更新),打开性能分析器,把性能分析源设为设备。 设备磁盘缓存一节出现在设备控件下方。选中设备时读取一次;目录扫描太贵,不会轮询,需要刷新就点重新扫描。

一行汇总:

资源 已用 · 受保护 受保护 · 可释放 可释放 · 索引 索引

  • 资源——磁盘上缓存的资产字节数。
  • 受保护——游戏可能还要用的字节:属于受保护版本的文件,加上归属未知的文件。
  • 可释放——其余所有;清理只能释放这部分。
  • 索引——缓存自己的记账文件,单独统计。

下面是缓存认识的每个版本一行,给出修订号、保留的原因,以及它有多少文件在磁盘上缺失:

标签 含义
当前版本 游戏正在运行的修订。
待提交 已发现并暂存、但还没提交的更新。
回退版本 上一个修订,留着让失败的更新能退回。
下次启动 / 保留版本 你主动保留的修订。
旧版本 没有任何东西保护它——它的文件可释放。

归属未知的文件(缓存开始追踪之前就有的)会受保护,直到一次校验过的写入确认它们是什么;存档永远不参与清理。

对运行中构建自己的版本,保留版本会预留一个修订——比如 QA 正在测的那个构建——这样当前 / 回滚这一对前进时不会把它释放。 取消额外保留把它还回去。保留与自动保护分开存放,所以更新不会悄悄丢掉你保留的修订。

  1. 设资源预算,单位 MiB(默认 128)。
  2. 预览清理——显示会释放多少文件、多少字节,不删除任何东西。
  3. 清理未保护资源——按最近最少使用的顺序删除,直到缓存符合预算,并报告释放的字节数和删除失败的数量。

只有未受保护的文件才会成为候选。如果受保护文件本身就超过预算,面板会说明并保留它们—— 预算是目标,从来不是删除游戏所需版本的理由。如果清理释放了空间但没能存下更新后的索引,面板会说明;下次扫描会对齐它。