第二篇,原文。
請注意:
有巴友反應,無論如何都沒辦法解決的問題,
所以今天來提供相關的解決辦法噢!
請注意:
配備不足的狀況之下,更改預設設定運行,
代價就是時間,請確保在充裕的時間下執行以下操作。
(我就執行了31分鐘)
有興趣的朋友,我會解釋一下為什麼這樣就可以解決這個問題,
有興趣的朋友,我會解釋一下為什麼這樣就可以解決這個問題,
解決辦法:
(2)複製 → -Xms1G -Xmx1G
找到 → set DEFAULT_JVM_OPTS=
這一行然後貼上在後方。
儲存之後,先最小化就可以,待會還要改回來。
(3)打開小黑盒,重複上次步驟先移動到Forge Mdk資料夾。所以這就是傳說中的等價交換、右手換機器人的煉金術!
(7)接著別忘了執行下一個指令。
所謂的Heap Space,是屬於java.lang.OutOfMemoryError裏頭的一個Exception(例外),
以上就是今天的教學,累死了。
(3)打開小黑盒,重複上次步驟先移動到Forge Mdk資料夾。
打上指令 → gradlew setupDecompWorkspace
(4)依舊會卡在56%,但是請耐心等待。
這個時候的狀態,我是有開著通訊軟體跟Chrome的三個分頁左右。
這時系統正在編譯Minecraft。
複製 → gradlew eclipse
(9)最後一步別忘了,把剛剛縮小的記事本打開來,
這邊針對這個狀況做點小解釋,有興趣的朋友可以看一下,
有點深入,所以沒興趣也沒關係,趕緊投入你製作模組的志業吧!
所謂的Heap Space,是屬於java.lang.OutOfMemoryError裏頭的一個Exception(例外),
它擲出的訊息為Java Heap Sapce,告訴我們Java當中,Heap用途的空間不足。
而Heap這個Space所存放的東西,是不可預期生命週期的資訊,
簡單來講就是動態產生的資料。
Heap Space不足在這裡發生的話,就會可能導致系統沒有辦法在指定的周期內完成工作。
Heap Space不足在這裡發生的話,就會可能導致系統沒有辦法在指定的周期內完成工作。
這些工作可能要產生一點資料放進去Space裡面,但是又沒有空間可以放進去的話,
它就會被延宕、甚至是放棄。也就是常見的LAG、無回應。
因為如果不去適度的停頓,讓空間產生喘息、釋放,
嚴重一點,可能會導致整台電腦的記憶體被消耗殆盡,進而Shutdown。
實際上,我們的電腦很聰明,並不會做出這種吃光自己資源的蠢事,
所以在沒有明文規定的設定下,系統預設會規定Heap Space的大小,
當可使用的Heap Space的空間,低於這個大小一定的百分比(2%),
整個JVM的系統就會放棄掉整項工作,接著回報Heap Space不足。
預設的Heap Space大小最小值為實體記憶體的1 / 64、最大值為實體記憶體的1 / 4,
預設的Heap Space大小最小值為實體記憶體的1 / 64、最大值為實體記憶體的1 / 4,
所以以我的電腦為例子,安裝了兩條1G的記憶體總共為2G,
Heap Space的大小為 Maximum:512MB、Minimum:32MB,
假設當時系統配給JVM的Heap Space剛好為最大值512MB,
當執行到剩下的Heap Space只剩下10.24MB(2%)的時候,就會爆炸啦!
但是其實系統不會那麼剛好就分給你512MB使用,搞不好才給你32MB XDDDD"
解決辦法就是去強制設定分配的Heap Space,設定為最大值1G、最小值也是1G,
這時候系統就會去榨給JVM系統1G的記憶體使用,死榨活榨都會榨出1G,
除非你太貪心設定2G,這個時候系統會不理你,直接把你踢掉,
因為它榨不出2G通通給JVM使用。
以上就是今天的教學,累死了。
如果有任何的錯誤,都歡迎更正噢!