-vmargs
-Xms128M
-Xmx512M
-XX:PermSize=64M
-XX:MaxPermSize=128M
把了解的總結下:
參數中-vmargs的意思是設置JVM參數,所以後面的其實都是JVM的參數了,我們首先了解一下JVM內存管理的機制,然後再解釋每個參數代表的含義。
堆內存分配
JVM初始分配的內存由-Xms指定,默認是物理內存的1/64;JVM最大分配的內存由-Xmx指定,默認是物理內存的1/4。默認空餘堆內存小於40%時,JVM就會增大堆直到-Xmx的最大限制;空餘堆內存大於70%時,JVM會減少堆直到-Xms的最小限制。因此服務器一般設置-Xms、-Xmx相等以避免在每次GC 後調整堆的大小。
非堆內存分配
JVM使用-XX:PermSize設置非堆內存初始值,默認是物理內存的1/64;由XX:MaxPermSize設置最大非堆內存的大小,默認是物理內存的1/4。
堆內存和非堆內存,另外JVM最大內存首先取決於實際的物理內存和操作系統。設置VM參數導致程序無法啓動主要有以下幾種原因:
1) 參數中-Xms的值大於-Xmx,或者-XX:PermSize的值大於-XX:MaxPermSize;
2) -Xmx的值和-XX:MaxPermSize的總和超過了JVM內存的最大限制,比如當前操作系統最大內存限制,或者實際的物理內存等等。說到實際物理內存這裏需要說明一點的是,如果你的內存是1024MB,但實際系統中用到的並不可能是1024MB,因爲有一部分被硬件佔用了。
參數寫入到eclipse.ini文件Eclipse沒有執行對應的設置?
沒有遵守eclipse.ini文件的設置規則:
參數形如“項 值”這種形式,中間有空格的需要換行書寫,如果值中有空格的需要用雙引號包括起來。比如我們使用-vm C:\Java\jre1.6.0\bin\javaw.exe參數設置虛擬機,在eclipse.ini文件中要寫成這樣:
-vm
C:\Java\jre1.6.0\bin\javaw.exe
Eclipse壓縮包中自帶的eclipse.ini文件內容是這樣的:
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
-vmargs
-Xms40m
-Xmx256m
其中–launcher.XXMaxPermSize(注意最前面是兩個連接線)跟-XX:MaxPermSize參數的含義基本是一樣的,我覺得唯一的區別就是前者是eclipse.exe啓動的時候設置的參數,而後者是eclipse所使用的JVM中的參數。其實二者設置一個就可以了,所以這裏可以把–launcher.XXMaxPermSize和下一行使用#註釋掉。
補充下啊,在Windows - Preferences --> General--> Startup and Shutdown 去掉不需要的插件,對於Eclipse啓動運行性能有幫助的
如果都嘗試了,結果還是不可以,那就刪掉.metadata文件夾,重新部署Eclipse工作空間