出現 java.lang.OutOfMemoryError: PermGen space 錯誤的原因及解決方法
阿新 • • 發佈:2018-12-16
出現 java.lang.OutOfMemoryError: PermGen space 錯誤的原因及解決方法
2017年04月07日 15:55:41 維C果糖 閱讀數:7852 標籤: tomcat exception out memory 更多
個人分類: 異常及錯誤
版權宣告:Follow your heart and intuition. https://blog.csdn.net/qq_35246620/article/details/69568205
1 錯誤描述
在正常啟動 Tomcat 的時候,報出如下錯誤:
2 錯誤原因
通過觀察上面的錯誤描述,我們可以知道錯誤原因:
java.lang.OutOfMemoryError: PermGen space
此錯誤,為記憶體溢位錯誤。更具體的說,是指方法區(永久代)記憶體溢位!
3 解決方法
由於 JDK 自帶的虛擬機器為 HotSpot,且其支援記憶體區域的動態擴充套件,因此可以通過設定虛擬機器引數來擴充套件方法區的記憶體大小。例如,進入Run/Debug Configuration
頁面,修改虛擬機器引數為:
-Xms1024M -Xmx2048M -XX:PermSize=128M -XX:MaxPermSize=256M
具體如何配置,如下圖所示:
其中,各個引數的含義為:
-Xms
,表示程式啟動時,JVM 堆的初始化最小尺寸引數;-Xmx
,表示程式啟動時,JVM 堆的初始化最大尺寸引數;-XX:PermSize
,表示程式啟動時,JVM 方法區的初始化最小尺寸引數;-XX:MaxPermSize
,表示程式啟動時,JVM 方法區的初始化最大尺寸引數。
對於本例中的錯誤,實際上,只需要擴充套件方法區的虛擬機器引數即可。
溫馨提示:在磁碟滿足條件的情況下,可自行修改虛擬機器引數進行測試。