跳到主要内容

Java 与内存

GPCL 会按游戏版本自动选 Java,也会根据电脑内存自动分配。多数情况下不需要手动改。

Java 版本对应关系​

Minecraft 版本需要的 Java
1.16.5 及更早Java 8
1.17 – 1.20.4Java 17
1.20.5 及之后Java 21

启动时发现缺少对应的 Java,GPCL 会自动下载并安装。下载失败时,去 设置 → 下载 → Java 下载 换一个镜像源再试。

Java 装在 GPCL 自己的目录里,不会影响系统里其他 Java,也不会改系统的 JAVA_HOME。

内存:自动​

默认是「自动」。分配逻辑分两步:

  1. 先按物理内存的 30% 估算,向下取整到 GB,并限制在 2 – 8 GB;
  2. 再看当前可用内存:至少给系统留 1 GB,最少按 2 GB 算,结果向下取整到 512 MB,取两者中较小的。

几个实际结果:

物理内存当前可用自动分配
16 GB8 GB4 GB
16 GB3.9 GB2.5 GB
8 GB4 GB2 GB

设置页会显示系统内存的已用 / 总计和当前可用值。可用内存紧张时,自动分配会跟着下调,并提示你先关掉一些程序。

-Xmx 是上限,不是一启动就占满。所以按当场可用内存分配,比硬给一个很大的值更稳。

内存:自定义​

整合包或大型模组包不够用时,切到「自定义」拖滑块。给系统和其他程序留出空间,不要把物理内存全部分给游戏。

出现 OutOfMemoryError 就是内存不够:

  1. 把分配调大一档再试;
  2. 还不行就减少模组;
  3. 同时关掉浏览器等占内存的程序。

G1GC 调优​

设置 → 高级 → 内存管理 里有 G1GC 调优,默认关闭。只有帧数波动、GC 卡顿明显时才建议打开;打开后会追加一组常用的 G1GC 参数。

自定义 JVM 参数也在同一块。参数写错会让游戏直接起不来,不确定就不要改。

启动前优化内存​

开启后,GPCL 会在启动游戏前回收自己占用的一部分内存。它只清理启动器自己的进程,不会碰正在运行的 Minecraft,也不会清掉登录状态。

机械硬盘上这一步可能出现短暂卡顿,属于正常现象。