足够的线程 [JEI启动优化]

足够的线程 [JEI启动优化]

通过将JEI最繁重的工作移出主线程并分布到多个CPU核心上,加快其启动速度。

性能

Just Enough Threads

更快进入世界。 Just Enough Threads 将 JEI 启动时最繁重的工作移出主线程,并分摊到你的 CPU 核心上,这样大型整合包在加载界面就不会因为 JEI 构建搜索索引而卡顿。

功能

后台构建物品搜索索引

JEI 通常在主线程上构建其物品过滤器——即覆盖所有物品和液体的搜索索引——而你需要在加载界面等待。在大型整合包中,这可能需要几秒钟。Just Enough Threads 会在你进入世界之后在工作线程上构建它,然后将构建完成的索引替换进 JEI。结果与 JEI 自身的索引完全一致,如果后台构建遇到问题,它会回退到 JEI 的正常构建流程。

你会看到: JEI 物品列表会在你出生后片刻出现,而不是拖慢世界加载。

并行预解析配方材料

在 JEI 检查其内置配方(合成、熔炼、切石等)之前,每条材料标签都必须被解析为具体的物品列表。Minecraft 懒加载这些数据,而 JEI 会在启动时触发所有解析。Just Enough Threads 会提前跨 CPU 核心完成解析,然后将结果交还给 JEI。JEI 自身的验证和注册流程仍会完全照常在主线程上运行,只是如今的数据已是解析好的了。

性能

在大型整合包(约 21,000 个物品/流体和 34,000 个原版类配方)中,于同一台机器上进入同一世界,关闭与开启优化时的对比:

JEI 启动阶段 关闭 开启
构建运行时 5.18 秒 0.55 秒
启动 JEI(总计) 10.7 秒 6.4 秒

最大单项开销——物品索引——不再阻塞加载;它会在你已进入世界后于后台构建。具体数值会因硬件和整合包大小而异。

配置

配置文件:config/jei_optimize-client.toml。每项优化都可独立开关。

  • enabled — 整个模组的总开关。
  • asyncIngredientFilter — 在进入世界后于后台线程构建物品搜索索引。
  • parallelVanillaRecipes — 在 JEI 读取配方前,跨 CPU 核心并行解析配方材料。

如果你在进入世界时遇到问题,可以关闭单独的选项,或设置 enabled = false 以完全恢复 JEI 的原生行为。

需求

Minecraft 加载器 JEI
1.20.1 Forge 47.4.4+ 15.20.0.120+
1.21.1 NeoForge 21.1.x 19.27.0.340

仅需客户端安装。必须安装 JEI。

备注

与 JEI 无关联。