標籤:style http color io os 使用 ar java strong
Eclipse 中設定JVM 記憶體
今天在eclipse 中測試把文檔轉換為圖片的時候,報出了下面的錯誤:
java.lang.OutOfMemoryError: Java heap space
從上邊的異常資訊可以看到,JVM 需要使用的記憶體已經超過了我們分配給虛擬機器可以使用的最大記憶體。所以問題就轉化為如何設定eclipse 中jvm 的最大記憶體。
一、嘗試修改Eclipse.ini 檔案 (此方法不行)
找到eclipse 目錄下的eclipse.ini 檔案,修改下面的內容:
-Xms40m
-Xmx512m
修改後重啟eclipse ,發現根本不起作用。經過後來查閱一些資料,原來這裡設定的最小記憶體和最大記憶體是不是給JVM 使用的,這個記憶體值包含了eclipse 自身使用的記憶體。
二、修改jdk 使用記憶體(此方法可行)
找到eclispe 中window->preferences->Java->Installed JRE ,點擊右側的Edit 按鈕,在編輯介面中的 “Default VM Arguments ”選項中,填入如下值即可。
-Xms64m -Xmx128m
三、修改Run Configurations (此方法可行)
在代碼上右鍵,依次點擊“Run As ”-> “Run Configurations ”,在Arguments 參數中的“VM arguments: ”中填入如下值即可。
-Xms64m -Xmx128m
四、查詢當前JVM 記憶體代碼
下面是查詢當前JVM 記憶體大小的代碼,可以測試以上設定後JVM 的記憶體是否會變化。增加JVM 記憶體的配置項後,無需重新啟動eclipse 。具體的代碼如下:
Java代碼
-
public class TestMemory {
-
-
public static void main(String[] args) {
-
-
System. out .println( " 記憶體資訊 :" + toMemoryInfo ());
-
-
}
-
-
/**
-
-
* 擷取當前 jvm 的記憶體資訊
-
-
* @return
-
-
*/
-
-
public static String toMemoryInfo() {
-
-
Runtime currRuntime = Runtime.getRuntime ();
-
-
int nFreeMemory = ( int ) (currRuntime.freeMemory() / 1024 / 1024);
-
-
int nTotalMemory = ( int ) (currRuntime.totalMemory() / 1024 / 1024);
-
-
return nFreeMemory + "M/" + nTotalMemory + "M(free/total)" ;
-
-
}
-
-
}
設定eclise運行時JVM記憶體