這兩天用eclipse,突然變得很卡,就上網找了些資料,對eclipse.ini啟動參數配置,整理如下:
1.先了解下JVM內存管理機制,JVM內存分為堆內存和非堆內存
2.JVM內存限制
首先JVM內存限制於實際的最大物理內存,假設物理內存無限大的話,JVM內存的最大值跟操作系統有很大的關系。簡單的說就 32位處理器雖然可控內存空間有4GB,但是具體的操作系統會給一個限制,這個限制一般是2GB-3GB(一般來說Windows系統下為1.5G- 2G,Linux系統下為2G-3G),而64bit以上的處理器就不會有限制了
3.示例:(具體情況,具體定吧)
-vmargs
-Xms128M
-Xmx512M
-XX:PermSize=64M
-XX:MaxPermSize=128M
4.其他啟動參數設定:
如果你有一個雙核的CPU,可以嘗試這個參數
-XX:+UseParallelGC
讓GC可以更快的執行
-arch [processor architecture]
描述:指定所使用的處理器的類別
舉例:eclipse -arch x86或eclipse -arch sparc
-application [id]
描述:指定要運行的應用,id為擴展org.eclipse.core.applications擴展點的插件id加擴展id
舉例:例如有個插件id為edu.sdu.app,擴展id為myapp,則eclipse -application edu.sdu.app.myapp,就會執行你的擴展應用
-clean
描述:清空插件緩存內容
舉例:eclipse -clean,有時插件顯示不出來是因為Eclipse將插件進行了緩存以加速啟動過程,若指定此參數則會清空緩存,從頭加載
-configuration [cofigfile location]
描述:指定配置文件的位置,在啟動時使用此目錄下的配置文件config.ini來啟動
舉例:eclipse -configuration d:/eclipse/configuration
-data [workspace location]
描述:指定啟動時的Workspace位置
舉例:例如Workspace位置設在D:/myworkspace,則eclipse -data D:/myworkspace
-debug [option file]
描述:以Debug狀態啟動Eclipse,所有的Debug開關在.options文件中指定
舉例:eclipse -debug d:/eclipse/.options
-dev [classpath entry]
描述:以開發狀態啟動Eclipse,這會添加所有指定的路徑作為每個插件的Classpath
舉例:例如eclipse -dev bin,會將產生在bin目錄下的所有類加載到類路徑中,這在開發插件時非常有用
-nosplash
描述:指定啟動時不顯示閃屏
舉例:eclipse -nosplash
-vm [jre path]
描述:指定啟動時所使用的Java虛擬機
舉例:例如要使用自己的Java虛擬機,則eclipse -vm D:/j2sdk1.4.2_04/jre/bin/java.exe,這樣還有一個好處,就是可以開啟一個Console,能夠顯示控制台信息;當然若使用eclipse -vm D:/j2sdk1.4.2_04/jre/bin/javaw.exe則不會再顯示控制台
-vmargs [Java VM arguments]
描述:指定啟動時要使用的Java虛擬機參數
舉例:例如要指定使用的內存容量,則eclipse -vmargs "-Xms256m -Xmx1024m"
注:此參數一定要放在所有參數變量的最后面
5.FAQ:
為什么有的機器我將-Xmx和-XX:MaxPermSize都設置為512M之后Eclipse可以啟動,而有些機器無法啟動?
通過上面對JVM內存管理的介紹我們已經了解到JVM內存包含兩種:堆內存和非堆內存,另外JVM最大內存首先取決於實際的物理內存和操作系統。所以說設置VM參數導致程序無法啟動主要有以下幾種原因:
1) 參數中-Xms的值大於-Xmx,或者-XX:PermSize的值大於-XX:MaxPermSize;
2) -Xmx的值和-XX:MaxPermSize的總和超過了JVM內存的最大限制,比如當前操作系統最大內存限制,或者實際的物理內存等等。
說到實際物理內存這里需要說明一點的是,如果你的內存是1024MB,但實際系統中用到的並不可能是1024MB,因為有一部分被硬件占用了
如果有不正確的地方希望大家予以指出!