
配方性能优化
整个配方系统的优化!
关于
FastSuite 能够改善所有使用 JSON 配方的模组的配方匹配性能,而非仅限于特定配方子集。其实现方式随主版本更迭而演变——当前版本(7.0.0+)采用了基于索引的算法。
实现方式
FastSuite 在其生命周期中曾使用过三种不同策略:
列表重排序(4.0.0 及更早版本)— 配方存储于“移至前端”列表中,频繁访问的配方会迁移至列表前端,在后续查找时成本更低。首次访问性能与原版持平;对深层配方的后续访问速度提升超过 95%,且对前端附近配方的性能影响极小。
并发匹配(4.1.0 – 6.x 版本)— 对于配方数量超过 100 的配方类型,匹配过程由单线程扩展至多线程。此方法在 All The Mods 8 中实现了 10 至 12 倍的加速,并且相比重排序模型更具兼容性与稳定性(例如:与 Polymorph 兼容,且首次匹配即可生效)。
索引匹配(7.0.0+ 版本)— 当前方案完全弃用并发,转而采用基于索引的算法。配方经过索引化处理后,仅测试可行的候选配方,无需扫描完整列表。对于同一输入,其匹配速度约为原版的 2 至 4.5 倍,且无需线程操作或每次匹配写入数据:
[索引版] - 匹配相思木板的全部配方平均耗时 93541.68 纳秒
[原版] - 匹配相思木板的全部配方平均耗时 416312.28 纳秒
[索引版] - 匹配木棍的全部配方平均耗时 203072.3 纳秒
[原版] - 匹配木棍的全部配方平均耗时 523836.38 纳秒
[索引版] - 匹配工作台的全部配方平均耗时 104967.54 纳秒
[原版] - 匹配工作台的全部配方平均耗时 236834.45 纳秒
[索引版] - 匹配黑色潜影盒的全部配方平均耗时 212810.42 纳秒
[原版] - 匹配黑色潜影盒的全部配方平均耗时 453240.12 纳秒
[索引版] - 匹配失败配方的全部配方平均耗时 243105.69 纳秒
[原版] - 匹配失败配方的全部配方平均耗时 918821.25 纳秒
如果你觉得“嘿,4.0.0 到 6.0.0 版本的数值看起来更棒”,其实是因为原版的变化使得并发匹配的性能优势几乎与单线程匹配持平。如今基线速度已大幅提升,但索引算法仍能实现显著更优的性能。
兼容性
本模组设计为低侵入性,应能与所有其他模组兼容,除非另一款模组同样替换了配方管理器。它兼容 KubeJS 和 CraftTweaker 等配方修改模组,且不会对 JEI 造成影响。
FastSuite 不会替代 FastWorkbench 或 FastFurnace,不过安装本模组后,由于部分工作已被 FastSuite 分担,后两者的性能提升效果可能有所减弱。为获得最佳配方性能,建议同时安装三者。
支持我
联系方式
Discord: https://discord.shadowsoffire.dev
正在加载版本记录…

正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。