JAVA中java.lang.OutOfMemoryError常見的解決方式
阿新 • • 發佈:2017-08-10
rms 檢查 方式 兩種 方法 之間 內存溢出 高手 nbsp
1. 檢查程序,看是否有死循環或不必要地重復創建大量對象。找到原因後,修改程序和算法。
2. 增加Java虛擬機中Xms(初始堆大小)和Xmx(最大堆大小)參數的大小。如:set JAVA_OPTS= -Xms256m -Xmx1024m
在開發中我們很多人都遇到過內存溢出的情況,其實內存溢出分幾種形式:
1、tomcat中java.lang.OutOfMemoryError: PermGen space異常處理(最常見的)
概念大家可以查查,其實大家還是關心解決方案:
解決方法:
(1)
手動設置MaxPermSize大小修改TOMCAT_HOME/bin/catalina.sh在
echo "Using CATALINA_BASE: $CATALINA_BASE"
上面加入以下行:
JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m
(2)在eclipse中修改tomcat配置:
增加:-Xms256M -Xmx1024M -XX:PermSize=64M -XX:MaxPermSize=128M
2、java.lang.OutOfMemoryError: Java heap space
發生這種問題的原因是java虛擬機創建的對象太多,在進行垃圾回收之間,虛擬機分配的到堆內存空間已經用滿了,與Heap space有關。解決這類問題有兩種思路:1. 檢查程序,看是否有死循環或不必要地重復創建大量對象。找到原因後,修改程序和算法。
2. 增加Java虛擬機中Xms(初始堆大小)和Xmx(最大堆大小)參數的大小。如:set JAVA_OPTS= -Xms256m -Xmx1024m
總結:內存的處理,是對於一個開發者良好開發習慣的考驗,多年的開發過程,讓我知道了,開發大神高手不是有多牛的技術,是對好的開發習慣一種養成,細節決定成敗!
JAVA中java.lang.OutOfMemoryError常見的解決方式