提高 JAVA IDE 的性能的JVM開關
Submitted by 小天蠍 on 2005, August 18, 2:45 PM. integration
我的本本是p4 1.8G的dell c640 內存1G,eclipse 3.1 + myeclipse 4.0m2 速度還不錯。
運行參數如下:
eclipse.exe -vmargs -Xverify:none -XX:+UseParallelGC -XX:PermSize=20M
--------------
JVM 提供了各種用於調整內存分配和垃圾回收行為的標准開關和非標准開關。其中一些設置可以提高 JAVA IDE 的性能。
注意,由於 -X (尤其是 -XX JVM)開關通常是 JVM 或 JVM 供應商特定的,本部分介紹的開關可用於 Sun Microsystems J2SE 1.4.2。
以下設置在大多數系統上將產生比工廠更好的設置性能。
-vmargs - 表示將後面的所有參數直接傳遞到所指示的 Java VM。
-Xverify:none - 此開關關閉Java字節碼驗證,從而加快了類裝入的速度,並使得在僅為驗證目的而啟動的過程中無需裝入類。此開關縮短了啟動時間,因此沒有理由不使用它。
-Xms24m - 此設置指示 Java 虛擬機將其初始堆大小設置為 24 MB。通過指示 JVM 最初應分配給堆的內存數量,可以使 JVM 不必在 IDE 占用較多內存時增加堆大小。
-Xmx96m - 此設置指定 Java 虛擬機應對堆使用的最大內存數量。為此數量設置上限表示 Java 進程消耗的內存數量不得超過可用的物理內存數量。對於具有更多內存的系統可以增加此限制,96 MB 設置有助於確保 IDE 在內存量為 128MB 到 256MB 的系統上能夠可靠地執行操作。注意:不要將該值設置為接近或大於系統的物理內存量,否則將在主要回收過程中導致頻繁的交換操作。
-XX:PermSize=20m - 此 JVM 開關不僅功能更為強大,而且能夠縮短啟動時間。該設置用於調整內存"永久區域"(類保存在該區域中)的大小。因此我們向 JVM 提示它將需要的內存量。該設置消除了許多系統啟動過程中的主要垃圾收集事件。SunONE Studio 或其它包含更多模塊的 IDE 的用戶可能希望將該數值設置得更高。
下面列出了其它一些可能對 ECLIPSE 在某些系統(不是所有系統)上的性能產生輕微或明顯影響的 JVM 開關。盡管使用它們會產生一定的影響,但仍值得一試。
-XX:CompileThreshold=100 - 此開關將降低啟動速度,原因是與不使用此開關相比,HotSpot 能夠更快地將更多的方法編譯為本地代碼。其結果是提高了 IDE 運行時的性能,這是因為更多的 UI 代碼將被編譯而不是被解釋。該值表示方法在被編譯前必須被調用的次數。
-XX:+UseConcMarkSweepGC -XX:+UseParNewGC - 如果垃圾回收頻繁中斷,則請嘗試使用這些開關。此開關導致 JVM 對主要垃圾回收事件(如果在多處理器工作站上運行,則也適用於次要回收事件)使用不同的算法,這些算法不會影響整個垃圾回收進程。注意:目前尚不確定此收集器是提高還是降低單處理器計算機的性能。
-XX:+UseParallelGC - 某些測試表明,至少在內存配置相當良好的單處理器系統中,使用此回收算法可以將次要垃圾回收的持續時間減半。注意,這是一個矛盾的問題,事實上此回收器主要適用於具有千兆字節堆的多處理器。尚無可用數據表明它對主要垃圾回收的影響。注意:此回收器與 -XX:+UseConcMarkSweepGC 是互斥的。
我的機器是512MB的內存
下面是我的eclipse啟動參數:eclipse.exe -vmargs -Xverify:none -Xms64M -Xmx256M -XX:PermSize=20M -XX:+UseParallelGC
-----
By BeanSoft:
我的電腦是1G內存, 有一次內存不足了... MyEclipse 就推薦我使用一個啟動參數, 現在我的啟動參數是:
eclipse.exe -vmargs -Xverify:none -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M -XX:+UseParallelGC