简介
LazyDFU 是一个优化模组,它使 Data Fixer Upper (DFU) 的初始化变得“懒惰”── 也就是说,它不会立即创建将数据从旧版本的 Minecraft 迁移到新版本所需的规则,直到它实际需要这样做。它不直接修改 DFU,故应该能够安全使用,但毕竟还是做出了修改,还请多加小心。
LazyDFU 的原理其实很简单:大多数时候,您将不需要为游戏的每个版本转换数据。因此,当游戏已经启动并运行时,DFU 规则编译将延后发生。这意味着,如果 LazyDFU 强制游戏编译迁移规则,您可能会看到滞后尖峰,但一旦完成,就没有任何性能损失。
这个模组更像是在 1.16 版本中对 镉 - 载入优化 (Cadmium) 的补充,尽管 镉 - 载入优化 (Cadmium) 解决了问题的根源(规则优化缓慢),但只能部分改善这种情况。通过延迟 DFU 规则的初始编译直到真的需要那么做时,LazyDFU 仍然会非常有效,游戏也会因此而更快地启动。
性能提升数据
在 i5-8250U 笔记本电脑上:
这样可以顺利进行响应式游戏启动。
与其它模组进行比较
镉 - 载入优化 (Cadmium):
上文说过了,与其形成互补的关系,一个解决了根源,一个弥补了缺陷,LazyDFU 在其之下仍然效用明显。
流畅加载 (Smooth Boot):
LazyDFU 采用与 流畅加载 (Smooth Boot) 类似的实现方法:两个模组均不尝试修改 DFU。
但是,LazyDFU 完全不编译 DFU 规则,因而优于 Smooth Boot,这是游戏启动过程中最耗时的部分。相比之下,流畅加载将限制编译 DFU 规则并以较低优先级运行它们的线程数。
DataBreaker:
从根本上讲,DataBreaker 是不安全的。如果使用 DataBreaker 加载较旧的世界,则它将破坏该世界。DataBreaker 中有一些保护措施,但即使是作者也不建议使用 DataBreaker。相比之下,使用 LazyDFU 可能会遇到令人讨厌的滞后尖峰,但是这仍比使用完全胶着的世界要优越得多。因此,与 DataBreaker 相比,更喜欢 LazyDFU :)
兼容性
LazyDFU 0.1.2 与 MC 1.14~1.18.2 兼容,在客户端和服务器端都可用。
LazyDFU 0.1.3 与 MC 1.19+ 兼容,但 Mojang 在服务器端实现了 LazyDFU 提供的功能,而客户端仍然默认初始化所有的 DFU 规则。
因此,LazyDFU 通过将其挂钩到原生客户端功能中,使 DFU 变为无操作。
然而,从 MC 1.19.4 开始,Mojang 已经显著优化了 DFU 初始化,以至于在许多配置中不再需要这个模组。此前版本的 Minecraft 将继续支持它。
移植版本