Faster Random

Faster Random

[注意:此模组现在仅适用于已有的Faster Random世界]

魔法

Faster Random 已于 2025-12-27 归档,并且已超过一年没有公开更新。

这是因为关于此模组的性能,我收到了太多相互矛盾的结果,并且觉得这个模组不应再被依赖。你注意到的任何性能提升可能只是安慰剂效应(尤其是你的 JVM 可能强制模组自我禁用!),或者可能超过了对你世界的原版一致性的影响。

这源于该生成器依赖于特定条件才能显著超越 Minecraft 的生成器,而且我不认为随机函数会占用足够的 CPU 时间使任何提升变得明显。目前我真的不知道这是否能让大型服务器运行得更快,而且我的系统可能存在瓶颈,无法确定。

请认为此模组仅推荐用于先前已使用 Faster Random 生成的世界,以保持一致性。这将是我提供的唯一形式的支持。“一些”潜在提升并不值得失去原版一致性。

简而言之:理论上,Faster Random 在_理论_上更快,但这是有条件的,而且我未能可靠地测试。

额外发现

奇怪的是,我早先关于 L64X128MixRandom 在重复构造上比基础的、原版的 XoroShiro128++ 慢 2 倍的发现不再出现。我不确定 JDK 是否随时间改进了这种行为,但即使没有先前的考虑,它_仍然_是有条件性的(至少是在玩家操作级别上)。

再次强调,这一发现远不足以说服我这款模组真的有效。

2024 年模组描述

Faster Random

Faster Random 是对 Minecraft 随机系统的重写,使用 Java 17 中引入的新 LXM 生成器,而不是 Minecraft 中较慢的 CheckedRandom(及相关生成器)。大多数 JVM 默认应该支持该生成器,但请检查你的日志以获取任何警告!

这也修复了 MC-239059 “漏洞”(该漏洞对游戏没有太大影响,但仍然是一个漏洞)。

Faster Random 的生成器在大多数系统上需要更长的构造时间(我只能依据我的 Linux AMD 系统),但生成数字的速度要快得多。由于 Minecraft 会重复使用许多生成器(这意味着避免了构造开销),因此性能提升可能会有很大差异。

性能可以通过测试模组进行测试,该模组在运行时会对每个方法运行基准测试。

目前,Faster Random 针对较慢的随机生成器,这会在世界结构放置/生成、特征和雕刻机放置与生成方面带来性能提升,同时也会影响许多客户端方面,如掉落物品。目前,Faster Random _尚_未对较快的生成器做任何改动。(直到我确定它能显著提升性能并且不会弊大于利为止)

你应该使用这个模组吗?

Faster Random 可能只能在一定程度上提升世界生成性能,因为你会很快遇到 RAM 和 I/O 瓶颈,因为更多的区块被存储在 RAM/写入磁盘。 这不是坏事,这只是意味着你生成区块的速度比系统的其余部分存储它们的速度快。根据你的系统,你的效果可能会_有很大_差异。

因此,此模组在服务端线程受 CPU 瓶颈(单人游戏运行在内部服务器上),但拥有足够快速的内存和存储(DDR4 RAM 和 SATA III 或更好的 HDD)的情况下能提供最大的性能。

对于世界生成,Faster Random 几乎 1:1,但一些洞穴形状的生成会与原版不同。 其他一切都是一比一的。这些差异很可能不会被注意到,但不应在像速通这样对一致性敏感的方面使用。Optifine 的数学优化对世界生成造成的破坏性更改远比 Faster Random 严重。

Faster Random 不需要同时在客户端和服务器端安装。Faster Random 可以在客户端提供小幅性能提升,因为那里仍有许多随机的东西。

系统要求 (3.0.0+)

(注意: 你可能在不知情的情况下为 Minecraft 使用了 headless JDK,这会因各种奇怪的原因导致 Faster Random 无法工作。如果 Faster Random 崩溃,请检查你是否下载了正确的 JDK/软件包。)

如果你使用的是官方 Minecraft 启动器,此模组应该可以与自带的 JVM 正常工作,如果你的日志中没有显示警告,则可以忽略这些说明。

与其他模组一起使用

Faster Random 应该能与大量模组良好兼容,尤其是在 4.0.0 之后。Faster Random 也将积极支持大多数主流的世界生成模组和 Distant Horizons。

Faster Random 也可以与其他地形优化模组(如 Noisium 和 C2ME)一起表现得更好,因为它们通过多线程更好地利用了 Minecraft 的随机系统。理想情况下, 你应该使用 Noisium + Faster Random,并在使用 Distant Horizons 时尽可能给 Minecraft 分配更多内存(10GB+)(C2ME 与 DH 一起使用会有性能损失)。Faster Random 可以利用 Noisium 来减少世界生成时的 CPU 使用量。

Forge?

Francium 是一个用于 1.16 和 1.18 的_非官方_ Forge 移植版,它主要做了 Faster Random 所做的事情,但没有世界生成优化。 对于 1.20.1 及这些世界生成更改,Sinytra Connector 应该能够以“足够稳定”的体验运行此模组。对于 1.20.1+,你可以尝试使用 NeoForge 移植版。

Faster Random 的图标根据 CC-BY-SA 许可。代码根据 Apache 2.0 许可。

喜欢这个模组吗?欢迎通过贡献代码、创建错误报告和向他人介绍它(这非常有帮助!)来支持开发!