跳至主要内容

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,也不會清掉登入狀態。

機械硬碟上這一步可能出現短暫卡頓,屬於正常現象。