ParityFast

ParityFast

旨在提升服务器性能的香草数学、随机数及查找优化

优化

Parity Fast 标志

ParityFast 是一个轻量级的 Fabric 优化模组,适用于 Minecraft 1.14.4。

它优化了数学、随机、查找和位置相关代码所使用的选定原版辅助路径。该模组旨在保留与原版兼容的行为,同时减少特定热路径的开销。

ParityFast 不声称能改善每个服务器、每个世界或每个工作负载。性能影响取决于世界、实体数量、刻负荷、已安装模组、JVM 和硬件。

优化区域

ParityFast 目前针对以下方面:

  • MathHelper 正弦/余弦查找行为,已对照原版表格值验证
  • 选定的精确辅助方法,如 floor、ceil、sqrt、abs、clamp、lerp、wrapping、angle、color、hash 和二分查找辅助函数
  • 选定的 BlockPos 编码/解码和偏移辅助路径
  • 选定的方向查找辅助函数
  • 随机处理路径,在适用情况下旨在保留原版序列行为
  • 实体刻、区块票证和方块邻接检查所使用的缓存枚举/列表/哈希查找

基准测试

这些基准测试展示了一个合成压力场景,并非普遍的性能保证。

在超平坦世界中测试,实体数量较高(约 200 个),随机刻活跃,并使用 /gamerule randomTickSpeed 5000。通过 Carpet 的 /tick health 进行测试。

指标 原版 ParityFast 差异
平均 MSPT 48.46ms 39.97ms -17.5%
方块刻时间 20.90ms 12.97ms -37.9%
实体刻时间 15.55ms 15.83ms 大致不变

结果可能因工作负载、硬件、JVM 设置和其他已安装模组而异。

测试环境

  • Minecraft 1.14.4
  • Fabric
  • Ryzen 9 9950X3D

原版一致性

ParityFast 保留了 Java Random 的原版 48 位 LCG 算法,而不是切换为 Java 17 的 LXM 或 SplitMix。在可能的情况下,它会复制现有的随机种子并从相同状态继续。