outofmemoryerror怎么解決, Outofmemoryerror,即內(nèi)存溢出,在java法律中很常見。發(fā)生這種情況有兩種常見情況。
1、
OutOfMemoryError錯誤錯誤:PermGen空間
出現(xiàn)這種情況可能是因為程序中使用了大量的jar或類,導致java虛擬機加載類的空間不足,這與永久生成空間有關。
如果要解決,一般有兩種方式:
1.首先是增加java虛擬機中XX:PermSize和XX:MaxPermSize參數(shù)的大小,其中XX:PermSize屬于初始永久存儲區(qū)大小。
XX:MaxPermSize是最大永久存儲區(qū)大小。
例如,對于tomcat6.0,在catalina.sh或catalina.bat文件中的一系列環(huán)境變量名的末尾,即大約70行的位置添加一行,具體為:
JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m
如果是windows服務器,可以在系統(tǒng)環(huán)境變量中設置。當使用tomcat發(fā)布具有sprint struts hibernate架構的程序時,很容易出現(xiàn)這種內(nèi)存溢出錯誤。可以使用上述方法,
基本上可以解決問題。
2.第二種方法是清理應用程序中web-inf/lib下的jar。如果tomcat部署了多個應用程序,并且多個應用程序使用同一個jar,那么您可以選擇將公共jar移動到tomcat的公共庫。
減少類的重復加載。這個方法總體來說還是不錯的,當然如果可以選擇的話,盡量用第一種方法會更好。
2、
OutOfMemoryError錯誤:Java堆空間
造成這個問題的原因也可能是java虛擬機創(chuàng)建了太多的對象,虛擬機分配的堆內(nèi)存空間在垃圾收集之前就已經(jīng)用完了,這和堆空間有關。
如果要解決這個問題,一般有兩種方法:
1.首先,您可以檢查程序,看看是否存在無限循環(huán)或創(chuàng)建大量不必要的對象。找到原因后,就可以修改程序和算法了。
2.您還可以選擇增加Java虛擬機中Xms(初始堆大小)和Xmx(最大堆大小)參數(shù)的大小。
比如:set JAVA_OPTS=-Xms256m -Xmx1024m
當然,具體情況要根據(jù)實際情況而定。要確定問題,然后選擇正確的方式去解決。
outofmemoryerror怎么解決,以上就是本文為您收集整理的outofmemoryerror怎么解決最新內(nèi)容,希望能幫到您!更多相關內(nèi)容歡迎關注。