
钯优化器
削减Satsu Iron man、Echoes of Power和A New Corps脚本每帧的实体开销。
Palladium Optimizer
针对使用 Palladium 附加模组的整合包的性能修复。每项修复独立生效,且仅会针对你实际安装的模组启用。你不需要安装 Echoes of Power、A New Corps 或任何特定的附加模组。 缺失的部分会被直接跳过,不会导致任何问题。
修复 1:加快带有大型 Palladium 附加模组的游戏启动速度(1.1.0 新增)
问题所在
Palladium 会从附加模组内部加载 KubeJS 脚本。对于每一个脚本,它都会为该模组创建一个全新的资源包对象,仅仅是为了读取一个文件。
安装了 ModernFix(在整合包中非常常见)后,每个新的资源包对象在首次使用时都会构建该模组 jar 的完整索引。因此,一个大型附加模组会每个脚本都对其整个 jar 重新索引一次。
以我们整合包中的例子:Satsu Iron Man Addon(约 7,800 个文件和 190 个客户端脚本)被重新索引了 190 次,导致加载界面卡死约 30 秒。
此模组的作用
Palladium 现在会为每个模组复用一个资源包对象,而不是为每个脚本都创建一个新的。jar 只会被索引一次。
- 相同的脚本、相同的顺序、相同的内容。模组 jar 在游戏运行期间不会改变,因此复用资源包的结果完全一致。
- 在我们的整合包中,安装 Satsu Iron Man Addon 后,启动时间从 约 135 秒降至约 91 秒,与未安装该模组时相同。
- 它适用于任何 Palladium 附加模组。模组越大,收益越大。没有安装 ModernFix 时收益较小,但仍然安全。
修复 2:来自 Echoes of Power / A New Corps 刻脚本的服务器卡顿
问题所在
这些附加模组内置的两个 KubeJS 脚本每个服务器刻都会运行(每秒 20 次),并在 JavaScript 中遍历每个已加载维度中的每个实体:
- Echoes of Power –
kubejs_scripts/property.js:对于每个活体实体,它会构建一个包含 7 项检查的列表,并每刻调用palladium.setProperty7 次。 - A New Corps –
kubejs_scripts/breedingtest.js:每刻遍历所有实体,仅仅是为了查找带有pink标签的弹射物。
在一个加载了数千个实体的繁忙服务器上,这会累积成每刻数万次 JavaScript → Java 调用。服务器会越来越落后("Can't keep up!"),直到看门狗以*"A single server tick took 60.00 seconds"*将其终止。
此模组的作用
当服务器加载脚本时,Palladium Optimizer 会仅替换这两个文件中开销巨大的刻循环。文件中的其他所有内容均保持原样。
- Echoes of Power: 实体扫描现在在 Java 中运行,并调用与原脚本相同的
palladium.setProperty。只有当实体不带有 7 个 EOP 标签中的任何一个,且在上一个刻已将全部 7 个属性设置为false时,才会跳过该实体。在这种情况下,原脚本只会用false覆盖false,而在 Palladium 中这不会改变任何内容,也不会发送任何数据包。 - A New Corps: 脚本现在只会接收到带有
pink标签的实体,其原有逻辑在这些实体上保持不变地运行。
结果与原脚本相同,但每个实体的开销大大降低。
可选模组:只安装你使用的内容
| 如果你有…… | 会发生什么 |
|---|---|
| Echoes of Power | 其刻脚本会被优化 |
| A New Corps | 其刻脚本会被优化 |
| 任何带有 KubeJS 脚本的 Palladium 附加模组(例如 Satsu Iron Man Addon) | 启动速度更快 |
| ModernFix | 启动修复的收益最大 |
| 以上都没有 | 该部分不做任何事,也不会出现问题 |
你可以全部安装、安装部分或一个都不安装。每项修复都是独立的。
安全性
- 刻修复仅当脚本匹配其制作时对应的确切版本时才会应用(Echoes of Power 3.3.0 和当前的 A New Corps)。如果任一附加模组更新且代码发生变化,本模组会保持其原样,并向日志写入一条警告。它绝不会修补无法识别的脚本。
- 启动修复在 Palladium 中使用了一个小的可选 mixin(已通过 Palladium 4.5.9 测试)。如果未来的 Palladium 版本更改了该代码,该 mixin 将不会被应用。不会崩溃,游戏会像未安装本模组一样加载。
- 不修改其他模组的文件。
如何检查其是否正常工作
在 logs/latest.log 中查找以下行。只有当安装了匹配的模组时,对应行才会出现:
[Palladium Optimizer] Cache de packs de mod do Palladium ativo (evita reindexar o jar a cada script).
[Palladium Optimizer] Correcao aplicada: addonpack_eop:kubejs_scripts/property.js
[Palladium Optimizer] Correcao aplicada: addonpack_a_new_corps:kubejs_scripts/breedingtest.js
前置要求
- Minecraft 1.20.1 – Forge 47+
- KubeJS 2001.6+
- Palladium 4.x
其他所有内容(Echoes of Power、A New Corps、ModernFix、其他附加模组)均为可选。见上表。
安装
将 jar 放入客户端和/或服务器的 mods 文件夹中。
- 客户端: 加快游戏启动速度。
- 服务器: 刻修复,以及为带有服务器脚本的附加模组加快启动速度。
加入服务器不要求安装它。没有安装它的玩家可以正常连接。它在单人游戏中也可用。
注意事项
- 一种边界情况:如果管理员用命令在某个不具备匹配标签的实体上手动设置了这 7 个 EOP 属性之一,原脚本会在下一个刻将其重置,而本模组不会。
- 这是一个非官方修复,与 Echoes of Power、A New Corps、Palladium 或 ModernFix 的作者无关。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。