快速进展

快速进展

一个针对Minecraft 1.12.2的轻量级性能模组,旨在消除tick卡顿和CPU峰值

性能

Fast Advancements

Fast Advancements 是一个适用于 Minecraft 1.12.2 的轻量级性能模组,旨在消除由原版处理成就和物品栏所导致的 tick 卡顿和 CPU 延迟尖峰,尤其是在加载了数千个进度的大型模组包中。


工作原理

Minecraft 的默认系统会不断扫描玩家的物品栏,并在进入世界时、战斗中以及物品移动时,根据加载的每个成就 JSON 文件评估击杀触发器。当加载了数百或数千个成就时,这会导致严重的 CPU 线程阻塞和内存饱和。

Fast Advancements 用外科手术式的多层方法取代了这种未优化的迭代逻辑:

  • 预热延迟: 在进入世界或服务器后的初始 tick 中暂时推迟繁重的成就检查,防止生成时的卡顿和冻结
  • 单次遍历物品栏计数: 仅使用快速原始计数器(fullStacks、emptySlots、occupiedSlots)扫描物品栏槽位一次,而不是在每次检查时分配冗余对象
  • 击杀触发器提前退出(Early-Exit Kill Triggers): 在遍历成就列表之前,立即跳过对非玩家来源的伤害来源和无效目标实体的评估
  • Tick 跳过: 在物品快速移动(shift-click、自动合成)期间限制重复物品栏检查的频率,以节省 CPU 周期而不改变进度逻辑

注意: Fast Advancements 不会改变游戏机制或禁用成就,它只是优化了内部评估条件的时机和方式。基本上,它能在加载时稳定世界。


性能测试

在加载了 2,000 到超过 4,000 个成就 的大型模组包测试环境中:

  • 进入世界时的稳定性: 消除生成后立即出现的初始 FPS 下降和 "Server thread/WARN - Can't keep up!" 消息
  • 减少战斗卡顿: 防止击杀生物或清理实体农场时的微小卡顿(垃圾回收延迟)
  • 物品栏效率: 在使用 Shift-click 将大量物品移入箱子或存储网络时平滑帧率下降

性能影响因加载的成就总数、CPU 的单核处理能力和模组包大小而异

注意:它不会提升整体性能,但会通过更快地稳定世界来略微改善世界加载,并间接帮助 CPU 和硬盘在加载世界时的表现


许可证和源代码

本项目采用 GNU 通用公共许可证 v3.0 (GPLv3) 授权。它是开源的,完全免费包含在任何模组包中。


报告 Bug

如果您遇到任何问题,请在 GitHub Issue Tracker 中报告。