跳到主要内容

JVM 优化

这篇文章可以说是整个笨蛋文档中编写历时最久的 (),为了确保正确性,我们在 Windows 和 Linux 上进行了大量性能测试,结果可以说是十分出人意料

这场测试的细节和日志,报告,Spark,GCLog 等可以在Test - Java找到

Java 选择

Zulu 的性能

根据官方对 Zulu 的定位,Zulu 的重点是安全性和稳定性,而非性能

大部分人对Zulu 性能好这一错误看法主要是来源于同一公司 Azul 旗下的另一款产品 Zing

该产品 (Zing) 的主要侧重点是性能,但是,如果你不想折腾,想拥有一个超高稳定性的环境,Zulu 仍然是你的最佳选择

兼容性

根据我们的测试,GraalVM,Dragonwell,Zulu 目前都没有被报告过不兼容

Zing 21 在已测试的 Leaf 1.21.1 环境下已未发现对市场主流插件 (如 LuckPerms, Oraxen, ItemsAdder) 的不兼容,目前仅有 HuskHomes 的 MariaDB 驱动异常导致 JVM Crash 的报告,切换回 MySQL 后可持续稳定运行

OpenJ9 虽然内存占用很低,但是性能很差,并且与很多插件有不兼容 (比如 Spark)。特别注意:由于 Paper 服务端内置 Spark,因此不能在 Paper 服务端上使用 OpenJ9

GraalVM 在 22.3.0 修复了所有已知的 Minecraft 错误

下载

Dragonwell 分为 Standard Edition 和 Extended Edition,推荐下载 Extended Edition

垃圾回收器

经过我们的多次测试,G1GC 和 ZGC 最适合 MC 服务器 (还有一个 Zing C4)

选择!

ZGC 的无停顿可以给玩家带来更好的体验,并且更充分的利用多核。

对于 GC 细节性的优化请阅读每个 Java 的优化指南