
HDD模式
像大多数PS4时代的游戏机游戏一样,这个Mod为Minecraft 1.21.1提供了HDD(机械硬盘)存储I/O策略优化。
HDD Mode
像大多数 PS4 时代主机游戏一样,为 Minecraft 1.21.1 / NeoForge 提供 HDD(机械硬盘)存储 I/O 策略优化。
HDD Mode 针对机械硬盘在区块加载/保存、模组缓存读写等场景下的卡顿问题,通过硬件自适应 + 本地/服务器双策略 + 写入合并 + 缓存预热,在不修改原版区块生成机制的前提下,显著降低磁盘 I/O 造成的掉帧与服务器 tick 卡顿。
✨ 特性
- 硬件自适应:启动时自动检测存储介质(HDD / SATA SSD / NVMe),支持配置文件手动覆盖。
- 本地策略(单机 / 局域网主机):
- 异步世界保存 + 写入合并(缓冲池,合并窗口默认 500ms / 激进 1000ms)
- 自动保存防卡顿(拦截
ServerLevel.save定时任务并延迟执行) - 存档回滚保护(仅激进模式:写前备份,崩溃自动恢复)
- 服务器策略(连接远程专用服务器):
- 自动卸载本地写盘钩子(客户端不保存主世界)
- 强化 Bobby / Distant Horizons 区块缓存文件读取缓冲(OS 页缓存预热)
- 激进模式需内存前置校验(默认 ≥ 6GB,不足自动回退保守模式)
- 安卓熔断:检测到 PojavLauncher / FCL 等安卓环境时立即进入完全静默 NO-OP 模式(不注入 Mixin、不初始化线程池、不读取配置)。
- 零破坏性:不修改原版区块生成机制;不覆盖 Bobby / DH / Sodium / Lithium 等模组的钩子。
- 策略模式:
IOManagerStrategy接口 +LocalIOManager/RemoteIOManager,通过工厂注入,热代码路径零 if-else。
📊 优化效果实测
数据使用 BenchMark 模组 实测生成(各 120 秒)。测试环境:机械硬盘(自动检测为 HDD);运行 Distant Horizons 1024 视距 LoD,并开启 Tectonic 模组的大型地形生成以增加读写负载。
| 指标 | 未启用优化 | 启用 HDD Mode | 提升 |
|---|---|---|---|
| 平均帧率 | 74.7 | 78.1 | +4.6% 🟢 |
| 平均 MSPT(毫秒) | 56.65 | 50.27 | -11.3% 🟢 |
| 平均 TPS | 17.65 | 19.89 | +2.24 🟢 |
| 最高 MSPT(毫秒) | 512.83 | 100.69 | -80.4% 🟢 |
| 1% Low FPS | 12.7 | 13.7 | +7.9% 🟢 |
结论:启用 HDD Mode 后,内置服务器平均 tick 时间下降约 11%(平均 TPS 从 17.65 提升到接近满速的 19.89),峰值卡顿从 512ms 大幅降至 101ms(-80%),平均帧率与 1% Low 均有提升——在高负载的 LoD 加载 + 大型地形生成场景下,磁盘 I/O 造成的卡顿被显著缓解。
测试环境:Intel Core i7-4790K · AMD Radeon RX 6500 XT · 16GB RAM · Windows 10 · HDD
提醒:性能数据因硬件、视角、模组组合而异,以上为同一机器两次实测的对照,仅供参考。
📦 安装
- 需要 Minecraft 1.21.1 + NeoForge 21.1.241+。
- 将 jar 放入
.minecraft/mods/(客户端与服务器均安装则两端生效)。 - 首次启动后生成配置文件
.minecraft/config/hddmode-config.toml。
🛠️ 构建
gradlew build
产物位于:build/libs/hddmode-<version>.jar
开发环境提示:本项目在透明 MITM 代理环境下于
gradle.properties加入了-Djavax.net.ssl.trustStoreType=WINDOWS-ROOT(本机适配),正常网络可删除。
⚙️ 配置
.minecraft/config/hddmode-config.toml
| 配置项 | 默认值 | 说明 |
|---|---|---|
storage_type |
AUTO |
AUTO / HDD / SSD / NVME,手动覆盖硬件检测 |
force_mode |
AUTO |
AUTO / CONSERVATIVE / AGGRESSIVE,强制本地策略模式 |
local.enable_async_save |
true |
异步世界保存 |
local.enable_write_merge |
true |
写入合并(缓冲池) |
local.enable_auto_save_async |
true |
自动保存防卡顿 |
local.enable_rollback_protection |
true |
回滚保护(激进模式) |
local.conservative_buffer_size |
8192 |
保守模式缓冲区(字节) |
local.conservative_merge_window_ms |
500 |
保守模式合并窗口(毫秒) |
local.aggressive_buffer_size |
65536 |
激进模式缓冲区(字节) |
local.aggressive_merge_window_ms |
1000 |
激进模式合并窗口(毫秒) |
remote.enable_cache_boost |
true |
远程缓存读取缓冲增强 |
remote.cache_buffer_size |
262144 |
缓存缓冲区(字节) |
remote.enable_minimap_async |
true |
小地图元数据异步写入 |
remote.enable_resource_streaming |
true |
资源包 / 音效流异步解压 |
remote.aggressive_min_memory_gb |
6 |
激进模式最小内存(GB) |
🤝 兼容性
- 兼容:Bobby、Distant Horizons、JourneyMap、Xaero 小地图、Sodium、Lithium、FerriteCore、Create 等(不覆盖其钩子,仅增强文件流缓冲)。
- 安卓:PojavLauncher / FCL 下自动完全静默(NO-OP),保证稳定。
- 不支持:Fabric / Quilt(本模组为 NeoForge 专属)。
📄 开源协议
使用 GNU Lesser General Public License v3.0(LICENSE)——允许其他模组调用本模组的 I/O 接口,但不污染闭源项目。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。