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

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

發布時間: 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,那就再調高一點,總之設置的內存夠了游戲就不會有這個提示了。

以上,祝游戲愉快!

熱點內容
源碼怎麼修改 發布:2025-04-01 07:22:08 瀏覽:25
linux查看用戶與組 發布:2025-04-01 07:08:27 瀏覽:421
安卓大屏導航怎麼改回中文 發布:2025-04-01 07:07:05 瀏覽:499
單機奧德賽需要什麼配置 發布:2025-04-01 07:05:33 瀏覽:903
專屬雲伺服器如何注冊 發布:2025-04-01 07:03:23 瀏覽:763
java編程的培訓機構 發布:2025-04-01 06:57:40 瀏覽:780
sqlserver百度雲 發布:2025-04-01 06:57:35 瀏覽:617
11點關閉游戲伺服器有什麼影響 發布:2025-04-01 06:51:54 瀏覽:560
轉發賺錢源碼 發布:2025-04-01 06:50:28 瀏覽:906
php對象編程 發布:2025-04-01 06:38:41 瀏覽:333