1. 程式人生 > >出現 java.lang.OutOfMemoryError: PermGen space 錯誤的原因及解決方法

出現 java.lang.OutOfMemoryError: PermGen space 錯誤的原因及解決方法

出現 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 的時候,報出如下錯誤:

out

2 錯誤原因

通過觀察上面的錯誤描述,我們可以知道錯誤原因:

java.lang.OutOfMemoryError: PermGen space

此錯誤,為記憶體溢位錯誤。更具體的說,是指方法區(永久代)記憶體溢位!

3 解決方法

由於 JDK 自帶的虛擬機器為 HotSpot,且其支援記憶體區域的動態擴充套件,因此可以通過設定虛擬機器引數來擴充套件方法區的記憶體大小。例如,進入Run/Debug Configuration頁面,修改虛擬機器引數為:

-Xms1024M -Xmx2048M -XX:PermSize=128M -XX:MaxPermSize=256M

具體如何配置,如下圖所示:

vm

其中,各個引數的含義為:

  • -Xms,表示程式啟動時,JVM 堆的初始化最小尺寸引數;
  • -Xmx,表示程式啟動時,JVM 堆的初始化最大尺寸引數;
  • -XX:PermSize,表示程式啟動時,JVM 方法區的初始化最小尺寸引數;
  • -XX:MaxPermSize,表示程式啟動時,JVM 方法區的初始化最大尺寸引數。

對於本例中的錯誤,實際上,只需要擴充套件方法區的虛擬機器引數即可。


溫馨提示:在磁碟滿足條件的情況下,可自行修改虛擬機器引數進行測試。