Minecraft-Java-Edition

如何消除由於記憶體轉儲導致的滯後峰值?

  • June 10, 2021

我調查了我在 Minecraft 中每隔 20 秒左右會遇到的偶爾快速“凍結”——我轉動的流暢運動會在不到半秒的時間內停止並恢復。它幾乎沒有引起注意,但它讓我很沮喪。

通過打開 F3/Debug 螢幕,我注意到每當右側的記憶體值從 25% 下降到 8% 時都會發生跳過。根據以前的經驗,我相信這是程序清除未使用記憶體的過程,Java 中的垃圾收集系統或類似的東西。

有什麼辦法可以讓這個記憶體刷新系統更流暢,或者讓快速滯後峰值不那麼頻繁?

可能的解決方案:

OptiFine

您可以在此處下載 OptiFine 。

OptiFine 是擺脫滯後尖峰的好方法,並且有很多設置可以調整,並且可能會消除滯後尖峰,嘗試將所有內容都關閉或盡可能低,或者只是根據自己的喜好調整它如果您轉到名為的設置,Other...您應該會看到一個名為 的選項Autosave,將其打開30m,它應該會減少發生的頻率。

為 Minecraft 分配更多 RAM

這取決於您可用的 RAM 數量,您擁有的 RAM 越多,它執行得越好,因為 Minecraft 使用了很多它,並且允許它使用更多可以使它執行更順暢。

啟動 Minecraft Launcher,然後轉到Edit Profile. 您現在應該一直看到一個名為 的選項JVM Arguments,啟用它,然後編寫以下內容-Xmx2G -Xmn128M:如果-Xmx-Xmn已經在那裡,請刪除它們。這將允許 Minecraft 在您啟動時為您的 Minecraft 分配多達 2GB 的 RAM,並且它始終以至少 128MB 的空間執行。

當然,這取決於您擁有多少 RAM,如果您的 PC/筆記型電腦上只有 2GB RAM,那麼我強烈建議您使用它來執行它-Xmx1G -Xmn64M。如果您有更多,我建議您找到至少一半的 RAM。確保您沒有將所有 RAM 都放在 Minecraft 上,否則其他應用程序可能不再工作或凍結,甚至可能崩潰。

請注意,要為 Minecraft(或任何 Java 程序)分配超過 1.8G 的 RAM,您需要一台具有 64 位 Java 的 64 位電腦。(如果您的系統支持,最新的 Windows 版本的 Minecraft 自動安裝的極簡 JRE 將是 64 位的。)

關閉所有/部分應用程序

在玩 Minecraft 時,我強烈建議您關閉大部分或所有應用程序,以便它盡可能流暢地執行,因為 Minecraft 並不是唯一佔用您的 RAM 的程序。

提高程序優先級

我建議不要這樣做,但是如果您的電腦真的那麼糟糕,並且您知道自己在做什麼,那麼您應該繼續閱讀此選項。

當您在 Windows 8(.1) 上的任務管理器中時,您應該會看到目前正在執行的所有應用程序,點擊More details,然後當您找到 Minecraft 時,右鍵點擊它,然後將滑鼠懸停在選項Go to details或類似的東西上那,您現在應該看到突出顯示的 java 程序,右鍵點擊它,然後將滑鼠懸停在Priority類似外觀上,然後點擊第二高的選項,因為 Realtime 可能會使您的 PC/筆記型電腦或您正在使用的任何作業系統崩潰,您應該是現在可以走了!

注意:優先選項可能會帶來一些問題,例如某些程序沒有響應/凍結,因此我建議保持任務管理器打開以隨時更改此設置。

那就是Java垃圾收集器。您可以添加以下啟動選項:

-XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1

這應該通過並行垃圾收集和減少收集事件的數量和影響來顯著減少垃圾收集滯後。

(取自https://aikar.co/2018/07/02/tuning-the-jvm-g1gc-garbage-collector-flags-for-minecraft/

您還可以嘗試執行最新的 64 位版本的 Java - 較新版本的 Minecraft 現在支持 Java 11+!

最後,正如其他回复所說,Optifine(打開 Video Settings > Performance 下的所有選項並將幀速率增加到 Unlimited)和性能增強模組(BetterFPS、FoamFix、Sodium/Phosphor/Lithium 等)可以提供很大幫助。

引用自:https://gaming.stackexchange.com/questions/219786