java主要是什么 java heap space什么意思?
java heap space什么意思?使用java程序從數(shù)據(jù)庫查詢大量數(shù)據(jù)時發(fā)生異常:java.lang.OutOfMemoryError錯誤:如果98%的時間花在GC上,并且可用堆大小小于2%,J
java heap space什么意思?
使用java程序從數(shù)據(jù)庫查詢大量數(shù)據(jù)時發(fā)生異常:java.lang.OutOfMemoryError錯誤:如果98%的時間花在GC上,并且可用堆大小小于2%,JVM中的Java堆空間將引發(fā)此異常。JVM堆的設(shè)置是指在Java程序運(yùn)行過程中JVM可以分配和使用的內(nèi)存空間的設(shè)置。堆大小的值將在JVM啟動時自動設(shè)置。初始空間(即-XMS)是物理內(nèi)存的1/64,最大空間(-Xmx)是物理內(nèi)存的1/4??梢允褂肑VM提供的-XMN-XMS-Xmx和其他選項進(jìn)行設(shè)置。例如:Java-Jar-xmn16m-xms64m-xmx128m我的應(yīng)用程序.jar如果堆大小設(shè)置太小,除了這些異常信息外,程序的響應(yīng)速度也會比較慢。GC占用更多的時間,而應(yīng)用程序分配的執(zhí)行時間更少。最大堆大小不應(yīng)超過可用物理內(nèi)存的80%。通常,-XMS和-Xmx的選項應(yīng)該設(shè)置為相同,-XMN應(yīng)該是-Xmx的1/4。堆大小的-XMS-XMN設(shè)置不應(yīng)超過物理內(nèi)存的大小。否則會提示“初始化VM時出錯,無法為對象堆保留足夠的空間”。