eclipse中設定JVM記憶體

bingguang1993發表於2018-05-07

 初學者非常容易混淆eclipse.ini檔案的作用,這個檔案 是 eclipse 軟體的 配置檔案,配置了eclipse 啟動,eclipse是用Java寫的,只不過用的IBM自己的SWT (Standard Widget Toolkit是一個開源的GUI程式設計框架,與AWT/Swing有相似的用處而已),這裡設定的最小記憶體和最大記憶體是留給啟動eclipse程式的那個虛擬機器使用的,我們要修改eclipse中java程式的JVM記憶體大小這裡設定是不起作用的。


以下提供兩種方法:

一、   修改jdk 使用記憶體

  找到eclispe 中window->preferences->Java->Installed JRE ,點選右側的Edit 按鈕,在編輯介面中的 “Default VM Arguments ”選項中,填入-Xms64m -Xmx128m 即可,具體如下圖:

這裡的設定影響整個exlipse中的工程的java虛擬機器的記憶體。


  二、修改Run Configurations

1.在程式碼上右鍵,依次點選“Run As ”-> “Run Configurations ”,在Arguments 引數中的“VM arguments: ”中填入如下值即可。

-Xms64m -Xmx128m

2.從工程中設定

  右鍵單擊工程,選擇properties->Java Editor->Run/Debug Settings->雙擊工程主程式。即彈出配置編輯框:

1和2兩種方法是等價


注意:jdk 和Run Configurations兩個地方都設定了的話,起作用的是Run Configurations,相當於父子繼承關係,子類覆蓋了父類的配置



三、查詢當前JVM 記憶體程式碼

下面是查詢當前JVM 記憶體大小的程式碼,可以測試以上設定後JVM 的記憶體是否會變化。增加JVM 記憶體的配置項後,無需重新啟動eclipse 。具體的程式碼如下:

[java] view plain copy
  1. public class TestMemory {   
  2.     
  3.     /**  
  4.       * @param args  
  5.       */   
  6.     public static void main(String[] args) {   
  7.        System. out .println( " 記憶體資訊 :" + toMemoryInfo ());   
  8.     }   
  9.     
  10.     /**  
  11.       * 獲取當前 jvm 的記憶體資訊  
  12.       *  
  13.       * @return  
  14.       */   
  15.     public static String toMemoryInfo() {   
  16.     
  17.        Runtime currRuntime = Runtime.getRuntime ();   
  18.        int nFreeMemory = ( int ) (currRuntime.freeMemory() / 1024 / 1024);   
  19.        int nTotalMemory = ( int ) (currRuntime.totalMemory() / 1024 / 1024);   
  20.        return nFreeMemory + "M/" + nTotalMemory + "M(free/total)" ;   
  21.     }   
  22. }  

相關文章