javaheapspace,javaheapspace 如何查看

本文目錄一覽:

java heap space是什麼意思?

java heap space的意思為「java堆空間」,是JAVA的堆棧設置太小的原因。

有這兩種解決方法:

1、設置環境變數:

set JAVA_OPTS= -Xms32m -Xmx512m

可以根據自己機器的內存進行更改,但本人測試這種方法並沒有解決問題。可能是還有哪裡需要設置。

2、java -Xms32m -Xmx800m className:

就是在執行JAVA類文件時加上這個參數,其中className是需要執行的確類名。這個解決問題了,而且執行的速度比沒有設置的時候快很多。

如果在測試的時候可能會用Eclispe這時候就需要在Eclipse -run -arguments中的VM arguments中輸入-Xms32m -Xmx800m這個參數就可以了。

java heap space什麼意思

使用Java程序從資料庫中查詢大量的數據時出現異常:

java.lang.OutOfMemoryError: Java heap space

在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」。

Java heap space 的具體解決方法

這種情況一般是程序本身問題導致在運行中使JVM內存溢出,從而拋出此異常:

1、首先就是需要檢查下自己代碼問題,比如有沒有死循環或者遞歸調用沒設置停止條件等等;

2、手動設置程序運行時的JVM堆棧內存,一般都是調大些,具體方法:

 對所以工程都有效:修改eclipse根目錄下的eclipse.ini文件

-vmargs  //虛擬機設置

-Xms40m //初始內存

-Xmx256m //最大內存

-Xmn16m //最小內存

-XX:PermSize=128M //非堆內存

-XX:MaxPermSize=256M

 只對當前工程有效:在Eclipse中–右擊工程/要運行的主類–Debug As-       -DebugConfigurations–(x)=Arguments–VM arguments中加入-       Xmx36m,然後Apply–Run

這上面的36指的是給java虛擬機分配的最大堆內存大小,單位是MB,也就       是說上面的那句話的含義是JVM的最大堆內存是36MB。

如果以上方法均無效,那可能就是Eclipse本身的問題,需要重新安裝。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/180382.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-22 05:12
下一篇 2024-11-22 05:12

發表回復

登錄後才能評論