跳到正文

Radium Re-Reforged

作者:big_energy

Radium Reforged 1.20.1 的分支版,专注于修复漏洞。

收藏

介绍

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

Radium (Re-Reforged) — 为 Forge 1.20.1 维护的 Radium 分支。

Radium 是 锂 的 Forge 移植版;锂是 CaffeineMC 开发的通用优化模组。它能提升服务端刻性能,同时不会改变原版行为、玩法或世界生成。

创建此分支是因为上游开发已趋于停滞。它沿用相同的模组 ID,可直接替换原版。

与上游版本的区别

已修复 — 复制 NBT 复合标签时发生 NullPointerException

NbtCompoundMixin 可能会导致 fastutil 映射的内部列表为空,因此任何对 CompoundTag 执行深度复制或深度遍历的模组都会崩溃。已知的变通方法是设置 mixin.alloc.nbt=false,但这意味着完全放弃该项优化。现在会提前填充映射,因此可以继续启用此选项。

上游问题:Reforged-Hub/radium-upstream#52(上游仍未解决)。

已修复 — 实体状态变更期间发生 ConcurrentModificationException

区块分区的实体追踪状态变更时触发的回调,可能会在遍历过程中移除实体并中断迭代。现在会遍历该分区实体列表的副本。

配置:mixin.chunk.entity_status_iteration

新增 — 为挤压检测缓存可推动状态

挤压检测的计算量呈平方级增长:分区中的每个实体都会询问其他所有实体是否可被推动,而答案只取决于被询问的实体。现在每个实体每刻只需计算一次,将 N*N 次调用降至 N 次。

这对模组化服务器尤其重要。在原版中,isPushable() 的逻辑很简单,但它会调用 isClimbing() —— 后者是热门的 Mixin 目标。对模组化服务器进行性能分析后发现,Botania 在该方法上挂钩以查询 Curios 槽位,每次调用都会遍历能力分发器:仅挤压检测就占用了服务器线程约 0.6% 的时间,Pehkui 还额外添加了自己的挂钩。

最多会产生一刻的状态延迟——如果实体在一刻进行到一半时死亡,它仍会保持可推动状态,直到该刻结束。

配置:mixin.entity.collisions.pushable_cache

已移植 — 上游 Radium 尚未引入的优化

移植自 CaffeineMC 的 Lithium 1.20.1 分支:

  • mixin.ai.useless_sensors — 跳过结果从未被读取的大脑传感器(山羊物品传感器;非幼年动物的亲代动物传感器)
  • mixin.block.beehive — 蜂箱会先检查是否受阻,再执行原本每次尝试离开时都会进行的高开销 NBT 复制
  • mixin.entity.sprinting_particles — 跳过服务端的疾跑粒子处理

除了一项实验性选项 experimental.entity.block_caching.fluid_pushing 外,此分支现已与 Lithium 1.20.1 功能一致。该选项以 Fabric 的 updateMovementInFluid 方法中的流体标签参数作为缓存键,而 Forge 将此方法替换成了无参数版本,因此没有可用作缓存键的参数。相关功能已由 mixin.entity.collisions.fluid 覆盖。

兼容性

  • Minecraft 1.20.1,Forge
  • 模组 ID 为 radium — 请勿与原版同时安装
  • 每项优化都有独立的配置开关,详见 lithium-mixin-config.md
  • Aperture Innovations:安装该模组时,mixin.entity.collisions.movement 会自动关闭——启用此选项后,玩家将无法进入其传送门。你无需手动修改配置。

更多优化

欢迎看看我的其他模组:JEIOptimizer

鸣谢与许可

锂 作者:CaffeineMC。Forge 移植版由 dima_dencep 和 NanoLive 制作。采用 LGPL-3.0-only 许可证。

源代码:https://github.com/bigenergy/radium-reforged-patched

常见问题

Radium Re-Reforged 支持哪些 Minecraft 版本?

Radium Re-Reforged 支持 Minecraft Java 版 1.20.1,可用的加载器:Forge。下载时注意选择和你游戏版本一致的文件。

Radium Re-Reforged 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Forge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。

评论

登录后评论和评分

big_energy 的其他作品

查看全部 →