跳到正文

FastSuite

JSON 配方系统的性能升级。

收藏

介绍

介绍由机器翻译自 CurseForge 原页面,仅供参考。

关于

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

评论

登录后评论和评分

Shadows_of_Fire 的其他作品

查看全部 →