當前位置:首頁 » 雲伺服器 » 游戲伺服器內存溢出怎麼辦

游戲伺服器內存溢出怎麼辦

發布時間: 2023-12-25 11:22:32

㈠ 伺服器內存溢出怎麼解決

1. java.lang.OutOfMemoryError: Java heap space ----JVM Heap(堆)溢出

JVM在啟動的時候會自動設置JVM Heap的值,其初始空間(即-Xms)是物理內存的1/64,最大空間(-Xmx)不可超過物理內存。

可以利用JVM提供的-Xmn -Xms -Xmx等選項可進行設置。Heap的大小是Young GenerationTenured Generaion之和。

在JVM中如果98%的時間是用於GC,且可用的Heap size不足2%的時候將拋出此異常信息。

解決方法:手動設置JVM Heap(堆)的大小。  

 

2. java.lang.OutOfMemoryError: PermGen space  ---- PermGen space溢出。 

PermGen space的全稱是Permanent Generation space,是指內存的永久保存區域。

為什麼會內存溢出,這是由於這塊內存主要是被JVM存放Class和Meta信息的,Class在被Load的時候被放入PermGen space區域,它和存放Instance的Heap區域不同,sun的 GC不會在主程序運行期對PermGen space進行清理,所以如果你的APP會載入很多CLASS的話,就很可能出現PermGen space溢出。

解決方法: 手動設置MaxPermSize大小

3. java.lang.StackOverflowError   ---- 棧溢出

棧溢出了,JVM依然是採用棧式的虛擬機,這個和C和Pascal都是一樣的。函數的調用過程都體現在堆棧和退棧上了。

調用構造函數的 「層」太多了,以致於把棧區溢出了。

通常來講,一般棧區遠遠小於堆區的,因為函數調用過程往往不會多於上千層,而即便每個函數調用需要 1K的空間(這個大約相當於在一個C函數內聲明了256個int類型的變數),那麼棧區也不過是需要1MB的空間。通常棧的大小是1-2MB的。

通常遞歸也不要遞歸的層次過多,很容易溢出。

解決方法:修改程序。

我的世界進游戲伺服器會顯示 out of memory

out of memory是內存溢出,也就是內存不夠用的意思,把分配給java的內存設置高一點就能解決這個問題。

我發的這個圖片是用HMCL啟動器設置分配給java的內存的步驟,如果你沒有HMCL啟動器可以去下載一個,官網地址:hmcl.huangyuhui.net,把下載後的啟動器程序跟客戶端的.minecraft文件夾放置一起(同一目錄下),然後打開它你就會看到像我圖里這個界面了。

在圖二里畫橫線的地方的數字設置高一點,我這里是1024MB,也就是1G,如果你已經是這個數值了,那麼你可以高一些,只要不超過左邊寫的「物理內存大小」的數值就好。

設置好後開游戲如果還是out of memory,那就再調高一點,總之設置的內存夠了游戲就不會有這個提示了。

以上,祝游戲愉快!

熱點內容
廣東梅州dns伺服器地址雲空間 發布:2025-08-28 16:38:05 瀏覽:70
爐石傳說燒繩腳本 發布:2025-08-28 16:37:20 瀏覽:201
四網通源碼 發布:2025-08-28 16:24:30 瀏覽:438
演算法而死 發布:2025-08-28 16:23:36 瀏覽:762
qt是c編譯器還是自己下載 發布:2025-08-28 16:22:53 瀏覽:658
安卓的便簽存在手機哪個目錄里 發布:2025-08-28 16:07:48 瀏覽:924
演算法匯總 發布:2025-08-28 15:56:54 瀏覽:745
linuxif判斷數字 發布:2025-08-28 15:45:32 瀏覽:213
nb編譯器 發布:2025-08-28 15:24:27 瀏覽:55
思科配置怎麼從ftp還原 發布:2025-08-28 15:22:04 瀏覽:398