java.lang.OutOfMemoryError: Java heap space 解決方法

java.lang.OutOfMemoryError: Java heap space 解決方法 java

這個問題的根源是jvm虛擬機的默認Heap大小是64M,能夠經過設置其最大和最小值來實現.設置的方法主要是幾個. linux

1.能夠在windows 更改系統環境變量
加上JAVA_OPTS=-Xms64m -Xmx512m 數據庫

2,若是用的tomcat,在windows下,能夠在 windows

C:\tomcat5.5.9\bin\catalina.bat  中加上: tomcat

set JAVA_OPTS=-Xms64m -Xmx256m jvm

位置在: rem Guess CATALINA_HOME if not defined  這行的下面加合適. spa

3.若是是linux系統
Linux  在{tomcat_home}/bin/catalina.sh的前面,加 
set JAVA_OPTS='-Xms64 -Xmx512'
內存

java.lang.OutOfMemoryError: Java heap space 
使用Java程序從數據庫中查詢大量的數據時出現異常:
java.lang.OutOfMemoryError: Java heap space 
在JVM中若是98%的時間是用於GC且可用的 Heap size 不足2%的時候將拋出此異常信息。 rem

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」。 虛擬機

相關文章
相關標籤/搜索