在 Forge MC 上将内存从 4GB 精准压缩到 1GB:一次可复现的实战调优
Minecraft Forge 服务端在模组较多时,常被配置为 4GB 甚至更高的堆内存(-Xmx)。然而在单人或轻负载场景中,这种“宽松配置”并不一定更快,反而可能带来启动慢、GC 扫描范围大、系统缓存被挤占等问题。本文记录一次从 4G 压缩到 1G 的实际调优过程,并解释为何更小的堆在该场景下更高效、更稳定。 一、启动方式与 Forge 的参数体系 Forge 1.x.x 使用“参数文件”来管理复杂的启动参数。典型的启动命令形如: 其中: unix_args.txt 的作用是拼装 Forge 的启动链路(BootstrapLauncher、SecureJarHandler、ASM、ModLauncher 等)与类路径,不会设置 4GB 内存。 二、为什么“看起来像 4GB”?客户端与服务端的混淆 调试时常会看到 F3(调试界面)里显示 …/…/4096MB,这并不一定来自服务端。当使用第三方启动器(如 HMCL)启动客户端时,客户端 JVM往往被配置为 4GB,因此 F3 显示的是客户端进程的上限。服务端是否 1GB 或 4GB,应以 systemd 或 jcmd 的 JVM 参数为准。 三、systemd 中的 Memory 为何高于 Xmx systemd 的 …