我的世界Minecraft 整合包啟動速度優化教程

抱歉之前一直在忙著研究自研的沙盒遊戲,沒有及時更新~~

這下子有空了,趕緊給各位粉絲補上一份大禮。

一、問題匯入

換了新電腦,配置不能說高階,至少也有中等水平。

開個原神,算上啟動動畫,到進入遊戲,差不多也就20秒

特效全高,須彌城記憶體佔用9G/16G,我一邊玩一邊看番劇都不成問題

玩個MC大型整合包(以新發布的地球2.0為例子,各啟動引數都是整合包預設的)

進入世界耗時高達9分鐘,這速度能忍?

而且記憶體佔用量20G/16G,不僅用了虛擬記憶體,而且直接把電腦獨佔了。

反正我忍不了。

於是我就開始琢磨怎麼優化這兩個問題。

參考我的上一篇優化文章我的世文章界Minecraft 1.12.2 極限優化指南

先換了阿里巴巴的龍井JVM,記憶體佔用下降到14/16G

但好像還不太夠,而且啟動速度只快2分鐘

二、解決方案

於是,我換了Openj9 JVM。

第一次載入會有點慢,但無所謂,我開了啟動優化

第二次就快了,啟動速度來到了5分鐘

記憶體佔用量下降到10/16G,好多了

三、進階操作

記憶體佔用量的優化基本上足夠了

那麼,還能不能讓啟動速度再快一點?

JVM角度啟動速度的優化,本質上就是依靠openj9的-Xshareclasses選項

這是一個載入快取,第一次啟動整合包時,速度不會有明顯提高

但它會快取優化資料,之後再次啟動時,載入速度就會快得多

也不會再出現進入遊戲後幾分鐘內很卡(因為傳統JVM這時候還在做JIT優化),後面才正常的情況了(尤其是在低配電腦上十分明顯)

這個引數我在上一篇文章裡已經附帶了,閱讀本文請先看看上一篇文章

但觀察下圖,你會發現,快取記憶體的空間已經滿了,這意味著,整合包的更多優化將無法被快取,也就說明, 還存在進一步優化的空間

執行java -Xshareclasses:printStats得到的結果

現在,開啟命令列

清除舊的快取

java -Xshareclasses:destroyAll

在遊戲的JVM引數處新增 -Xscmx:500M(通常500M就夠用了,不夠可以再加到1G)

啟動遊戲,進入世界,跑圖五分鐘,退出遊戲

再次啟動,你會發現,只要4分鐘就能進入世界了。

這樣,我們就優化到極致了。(啟動時間10分鐘->4分鐘。記憶體佔用20GB->10GB)

可以邊打遊戲邊看番了

接下來估計要備戰半期考了,考完之後可能會出一點自研次時代微體素沙盒遊戲的技術細節

VulkanMod的作者一直沒定好GBuffer的處理模板。我自己寫FSR2.0/DLSS支援,又擔心自創的GBuffer模板會不會影響作者後續開發光影支援的發揮。只能等他把GBuffer管道模板定下來了,我再合併超解析度支援啦.......

隨便看看 更多