java.lang.outofmemoryerror: java heap space 解決方法
這個問題的根源是jvm虛拟機的預設heap大小是64m,可以通過設定其最大和最小值來實作.設定的方法主要是幾個.
1.可以在windows 更改系統環境變量
加上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系統
linux 在{tomcat_home}/bin/catalina.sh的前面,加
set java_opts='-xms64 -xmx512'
java.lang.outofmemoryerror: java heap space
使用java程式從資料庫中查詢大量的資料時出現異常:
在jvm中如果98%的時間是用于gc且可用的 heap size 不足2%的時候将抛出此異常資訊。
jvm堆的設定是指java程式運作過程中jvm可以調配使用的記憶體空間的設定.jvm在啟動的時候會自動設定heap size的值,其初始空間(即-xms)是實體記憶體的1/64,最大空間(-xmx)是實體記憶體的1/4。可以利用jvm提供的-xmn -xms -xmx等選項可進行設定。
例如:java -jar -xmn16m -xms64m -xmx128m myapp.jar
如果heap size設定偏小,除了這些異常資訊外,還會發現程式的響應速度變慢了。gc占用了更多的時間,而應用配置設定到的執行時間較少。
heap size 最大不要超過可用實體記憶體的80%,一般的要将-xms和-xmx選項設定為相同,而-xmn為1/4的-xmx值。
heap size的 -xms -xmn 設定不要超出實體記憶體的大小。否則會提示“error occurred during initialization of vm could not reserve enough space for object heap”。
http://www.blogjava.net/liuwentao253/archive/2008/06/03/205466.html