java.lang.OutOfMemoryError: Java heap space 解決方法 這個(gè)問題的根源是jvm虛擬機(jī)的默認(rèn)Heap大小是64M,可以通過設(shè)置其最大和最小值來實(shí)現(xiàn).設(shè)置的方法主要是幾個(gè).
1.可以在windows 更改系統(tǒng)環(huán)境變量
加上JAVA_OPTS=-Xms64m -Xmx512m
2,如果用的tomcat,在windows下,可以在
C:\tomcat5.5.9\bin\catalina.bat 中加上:
set JAVA_OPTS=-Xms64m -Xmx256m
位置在: rem Guess CATALINA_HOME if not defined 這行的下面加合適.
3.如果是linux系統(tǒng)
Linux 在{tomcat_home}/bin/catalina.sh的前面,加
set JAVA_OPTS='-Xms64 -Xmx512'
java.lang.OutOfMemoryError: Java heap space
使用Java程序從數(shù)據(jù)庫中查詢大量的數(shù)據(jù)時(shí)出現(xiàn)異常:
java.lang.OutOfMemoryError: Java heap space
在JVM中如果98%的時(shí)間是用于GC且可用的 Heap size 不足2%的時(shí)候?qū)伋龃水惓P畔ⅰ?/p>
JVM堆的設(shè)置是指java程序運(yùn)行過程中JVM可以調(diào)配使用的內(nèi)存空間的設(shè)置.JVM在啟動(dòng)的時(shí)候會(huì)自動(dòng)設(shè)置Heap size的值,其初始空間(即-Xms)是物理內(nèi)存的1/64,最大空間(-Xmx)是物理內(nèi)存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等選項(xiàng)可進(jìn)行設(shè)置。
例如:java -jar -Xmn16m -Xms64m -Xmx128m MyApp.jar
如果Heap Size設(shè)置偏小,除了這些異常信息外,還會(huì)發(fā)現(xiàn)程序的響應(yīng)速度變慢了。GC占用了更多的時(shí)間,而應(yīng)用分配到的執(zhí)行時(shí)間較少。
Heap Size 最大不要超過可用物理內(nèi)存的80%,一般的要將-Xms和-Xmx選項(xiàng)設(shè)置為相同,而-Xmn為1/4的-Xmx值。
Heap size的 -Xms -Xmn 設(shè)置不要超出物理內(nèi)存的大小。否則會(huì)提示“Error occurred during initialization of VM Could not reserve enough space for object heap”。