2026-10-25功能升级作者:方竞舟阅读约 5 分钟

小鸡模拟器游戏库扫描重写:1.2 万文件 8 秒完成

小鸡模拟器游戏库扫描封面
按指纹去重后再匹配中文名,识别率 96.2%

2026 年 10 月 25 日,小鸡模拟器重写游戏库扫描。1.2 万个文件从 47 秒降到 8 秒,按文件指纹去重、按文件名与封面识别中文名,识别率 96.2%,重复包与损坏包单独列出,扫描可中断续跑。

游戏库乱是长期问题:同一款游戏有多个版本,压缩包套着压缩包,文件名是拼音缩写或编号,扫描完还要手动一个个改。旧版扫描只认扩展名,压缩包整包解开再判断,遇到大文件就卡住,中途退出还得从头再来。

扫描只读压缩包中央目录,不解压整包
1.2 万个文件的扫描耗时从 47 秒降到 8 秒

先把文件认对,再谈速度

扫描分三步:目录遍历时只读文件头与压缩包中央目录,不解压;用 64 位指纹对文件去重,同一份 ROM 换个名字也能认出来;再用文件名、内部文件结构与封面特征匹配中文名。压缩包套娃最多展开两层,超过两层直接标记为可疑,交给玩家手动处理。

客户端负责人方竞舟说:「扫描慢的根因不是遍历,是解压。以前为了判断一个 700 MB 的包是不是游戏,要把它整个解开,现在只看中央目录,几百毫秒就够。」扫描过程每秒写一次进度,中断后从上次的位置继续,不用重来。

实测:速度、识别率与内存

测试用 1.2 万个文件、共 340 GB,覆盖 26 类平台。数据:全量扫描 8 秒,旧版 47 秒;中文名识别率 96.2%,旧版 71.4%;重复包识别 2.1%,按指纹合并后游戏库条目减少 1.9%;损坏包 0.4%,单独列出并标注原因;封面匹配率 91%;内存峰值 48 MB,旧版 210 MB;增量扫描只处理新增与修改过的文件,平均 1.3 秒。

识别失败的 3.8% 主要是自制改版与汉化补丁包,文件名里没有可用的作品信息。这类文件会进入待确认区,玩家手动填一次名称后记入本地规则,下次扫描直接套用。测试组负责人江映雪说:「自制版本太多了,指望机器全认出来不现实,能记住玩家的选择就够了。」

命名与手动修正

内置中文名库 3.2 万条,覆盖主流平台的高频作品,每月更新。手动修正只改游戏库里的显示名,不动硬盘上的文件,避免误改导致其他软件找不到。批量重命名支持按平台、按年代与按字母排序,规则可以保存成预设。

去重默认保留体积最大的那一份,其余的标记为副本但不删除,玩家可以自行清理。删除操作只移除游戏库条目,文件仍在原目录,客户端会在确认框里写清这一点。扫描不会上传文件名与路径,封面匹配用的是本地特征库。

封面匹配与隐私边界

封面匹配用的是本地特征库,按文件名与文件指纹查表,不上传任何路径与文件名。特征库随客户端更新,体积 18 MB,覆盖 3.2 万条中文名与 2.6 万张缩略封面。匹配不到时显示平台图标,不使用在线搜索,避免把玩家的目录结构发出去。

扫描过程只读文件头与中央目录,不修改、不移动、不删除任何文件。玩家在游戏库里做的重命名与封面替换,只写进客户端自己的数据库;卸载客户端时数据库一并删除,这一点在设置页有明确说明。需要保留命名规则的玩家,可以把规则导出为文本,重装后再导入。

增量扫描用文件修改时间与体积做初筛,命中才计算指纹,1.2 万个文件的增量扫描平均 1.3 秒。扫描期间可以正常游玩,客户端只在写入数据库时短暂加锁,不会打断正在运行的游戏。多目录支持单独设置优先级,同一作品在不同目录重复出现时,按优先级保留一份,其余标记为副本;优先级可以在设置页拖动调整。对网络存储与移动硬盘,扫描默认只读文件名,不读取文件头,避免大量随机读导致卡顿;这类目录的识别率会低一些,客户端会在结果页提示。扫描日志保留最近 20 次,能看到每次新增、修改与失败的条目数,方便排查某个目录为什么没被收录。日志只留在本地,不上传,可在设置页一键清空,清空后不影响游戏库。扫描结果支持导出为文本清单,含平台、文件名与识别状态,遇到批量未识别时可以把清单发给客服定位问题。

先把库整理干净

1.2 万文件 8 秒扫完,去重、识别中文名、坏包单独列出。

前往下载中心

玩家评论(5)

许
许亦舟

以前扫一次要等一分钟,现在几秒就好了。

程
程可欣

中文名识别准了很多,之前全是英文缩写。

邵
邵天翊

重复包能认出来太好了,我库里有三份同一个游戏。

叶
叶澜

自制改版还是认不出,不过记住我的命名了。

温
温子澄

内存峰值降下来这点老机器感知明显。

上一篇小鸡模拟器轻量版发布:38 MB 安装包,2 GB 机型可跑 下一篇小鸡模拟器音频链路重构:延迟降到 21 毫秒
↑