Lithium是一个免费且开源的优化模组,与其它优化mod不同,Lithium致力于着一个标准,即在不修改原版游戏内容的前提下做出更多的优化改进,如果您想获取更激进一点的优化,您可以尝试氢(Hydrogen)。 分为Fabric和Forge两个版本。 它致力于改善多种原版机制的计算方法,如:物理系统、生物AI、红石、爆炸等。详见目录-优化。 Lithium可以被单独安装至客户端或者服务器的任意一端中。服务器安装时,客户端无需安装,反之亦然。 作者没有任何把Lithium移植到1.12或者更低版本的想法。(因为它主要面向的是1.13+的负面优化特性) 与同样出自jellysquid_的优化模组磷(Phosphor)与钠(Sodium)搭配使用,效果更佳。 由于Fabric自身引入了Sponge的Mixin,MixinBootstrap 1.0.2+不再被需要,1.16以后的版本可直接使用(Forge版仍需使用)。 安装锂之前(左图)和之后(右图)的服务器tick时间(mspt)图。这是在现有世界中以18渲染距离进行的测量。 您或许很想知道该Mod优化了些什么,让我们看看吧。 - 物理优化:通过简单地减少长方体碰撞箱的分辨率复杂度,实体碰撞检测有了显着的进步。同时,还使用一种更准确的算法来减少每个tick的检查区块数,尤其是在实体快速移动的情况下,优化效果显而易见。
- 怪物AI优化:我们在一些处理AI的任务中使用了基于事件的系统,以减少不断遍历世界变化所带来的CPU占用。怪物的“大脑”也被优化了,可以在不同的AI任务之间选择,比以前快得多。您可以在此处看到前后比较的结果。
- 世界生成优化:在原版的世界生成器当中,许多计算都是不必要的,并且不会影响最终结果,这为Lithium提供了充分的机会来优化这一笔显著的性能开销。
- 区块加载优化:区块方块着色板压缩中所使用的预生成结构已被更改,以提高效率。当玩家在探索世界时(生成新区块),这将导致更少的TPS下降,并适当地为加载时间提供了优化。我们还批量处理化了一些验证操作,以减少不必要的磁盘I/O。注意:如果您安装了区块引擎重写优化井字棋(tic-tacs),该优化不会对您有任何作用,但这并不影响双方的兼容性。
- 刷怪塔优化:怪物成堆所带来的性能损耗显著降低,因为处理实体之间的碰撞冲突已经被优化,利用简单的碰撞箱,这使得刷怪塔对服务器tick速率的伤害大大降低。
- 方块tick优化:该优化让方块更新有了质的飞跃,实施该优化后生成区块的速率和其它红石装置的响应速度更快。这也减少了方块用于确定是否按照更新队列O(n)[n在这里代表方块响应数量数]的计划进行更新响应的时间,当该值到O(1),此时若有大量方块被更新,那么这将提供十分显著的速度提升。
- 爆炸优化:我们已为TNT和爆炸应用了相当多的优化,在不改变其行为的情况下减少了相关的行为所带来的卡顿。在其中增益最显著的一项是光线追踪,其已得到充分优化,我们可以利用以下事实佐证:在同一路径上,多步发生的行为将响应于同一方块位置,从而使我们能够快速复用上一步的结果。我们还利用了一种更快的位置跟踪算法,该算法可以避免许多不必要的位置分发。
- 生物行为优化:《Minecraft》中复杂的实体AI,主要来源是属于村民和掠夺者所带来的计算,这些计算通常需要在世界中找到相关的事件点,以便选择最合适的AI任务。在一般情况下,查询一个区块中的所有事件点需要通过大量数据流代码进行16次单独检索。随着Lithium的出现,这个任务被简化为一个简单的检索,使用更快的(也是很典型的)的基于迭代器的方法,查询得到16-22倍的改进。
- 数据跟踪器优化:用于追踪某些实体状态和属性的内部数据管理器已然被优化,通过使用平面数组并极力避免性能损耗较高的锁定,无论何时这些属性在游戏期间被何种方式访问,这都提供了一个十分体面高效的性能提升。
- …以及其他内部改进,以帮助JVM更好地优化代码。
mod配置Lithium使用了不寻常的配置系统,可用于启用或禁用某些补丁程序。该系统可以对Lithium修改的代码进行极其细微的控制,因此,可以完全消除由mod引入的错误或mod不兼容性。 前置mod
下载地址
|