配置引數 -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M
MyEclipse記憶體不足 以及 配置引數“ -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M ”的含義
提示中給出了設定的引數:
這裡有幾個問題: 下面我們一一進行回答 1. 各個引數的含義什麼? 引數中-vmargs的意思是設定JVM引數,所以後面的其實都是JVM的引數了,我們首先了解一下JVM記憶體管理的機制,然後再解釋每個引數代表的含義。 堆(Heap)和非堆(Non-heap)記憶體 2. 為什麼有的機器我將-Xmx和-XX:MaxPermSize都設定為512M之後Eclipse可以啟動,而有些機器無法啟動? 通過上面對JVM記憶體管理的介紹我們已經瞭解到JVM記憶體包含兩種:堆記憶體和非堆記憶體,另外JVM最大記憶體首先取決於實際的實體記憶體和作業系統。所以說設定VM引數導致程式無法啟動主要有以下幾種原因:
3. 為何將上面的引數寫入到eclipse.ini檔案Eclipse沒有執行對應的設定? 那為什麼同樣的引數在快捷方式或者命令列中有效而在eclipse.ini檔案中是無效的呢?這是因為我們沒有遵守eclipse.ini檔案的設定規則:
按照上面所說的,最後引數在eclipse.ini中可以寫成這個樣子:
實際執行的結果可以通過Eclipse中“Help”-“About Eclipse SDK”窗口裡面的“Configuration Details”按鈕進行檢視。 另外需要說明的是,Eclipse壓縮包中自帶的eclipse.ini檔案內容是這樣的:
其中–launcher.XXMaxPermSize(注意最前面是兩個連線線)跟-XX:MaxPermSize引數的含義基本是一樣的,我覺得唯一的區別就是前者是eclipse.exe啟動的時候設定的引數,而後者是eclipse所使用的JVM中的引數。其實二者設定一個就可以了,所以這裡可以把–launcher.XXMaxPermSize和下一行使用#註釋掉。 可直接設定eclipse.in裡面引數!i |