JVM---vm調優的例項1
最近,Eclipse(Eclipse-JEE3.5)執行十分緩慢(可能外掛安裝過多),因此,得到了個機會調優一下,以便提高工作效率 下圖是未經任何調整eclipse的gc情況(使用jvisualvm命令,安裝visual gc外掛)
在終端輸入:jvisualvm執行後,工具->外掛->visual gc,安裝。
啟動eclipse後,在終端執行: ps -ef | grep eclipse,然後在jvisualvm的應用程式一欄選擇eclipse pid的程式雙擊,即可到visual gc上檢視圖表。
-Xms1024m -Xmx1024m
對應的為圖中的 Old 區;
-XX:NewSize=768m -XX:MaxNewSize=768m
對應的為圖中的 Eden 區;
-XX:PermSize=200m -XX:MaxPermSize=200m
對應的為圖中的 Perm區; 從圖中可以看出,僅啟動過程就有38次young gc,11次full gc 為了檢視gc細節,在eclipse.ini中加入如下引數: -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:D:/soft/eclipse-jee/gc.log gc的內容如下: 從gc日誌中可以看出: (1)young區開始為4928K,持續的不夠,因此造成不斷的young gc (2)full gc時,old區的空間增大擴容,因此old區空間也不夠 為了防止這種情況發生,加入以下引數: -Xms768m -Xmx768m -XX:NewSize=512m -XX:MaxNewSize=512m 此次調整後結果如下圖:
總結一下加入的引數如下: -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:D:/soft/eclipse-jee-galileo-win32/eclipse/gc.log-Xms512m -Xmx512m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=96m -XX:MaxPermSize=96m -XX:+DisableExplicitGC -XX:CompileThreshold=100 -Xverify:none -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=80
參考如上內容用的eclipse.ini:
1、小記憶體,執行情況不錯
-clean -startup plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar --launcher.library plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.1.200.v20130807-1835 -product org.eclipse.epp.package.cpp.product --launcher.defaultAction openFile -showsplash org.eclipse.platform --launcher.XXMaxPermSize 256m --launcher.defaultAction openFile --launcher.appendVmargs -vmargs -Dosgi.requiredJavaVersion=1.6 -Xms512m -Xmx512m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=96m -XX:MaxPermSize=96m -XX:+DisableExplicitGC -XX:CompileThreshold=100 -Xverify:none -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=80
2、大記憶體
-clean -startup plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar --launcher.library plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.1.200.v20130807-1835 -product org.eclipse.epp.package.cpp.product --launcher.defaultAction openFile -showsplash org.eclipse.platform --launcher.XXMaxPermSize 256m --launcher.defaultAction openFile --launcher.appendVmargs -vmargs -Dosgi.requiredJavaVersion=1.6 -Xms1600m -Xmx1600m -XX:NewSize=800m -XX:MaxNewSize=800m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC -XX:CompileThreshold=100 -Xverify:none -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=80
3、大記憶體,自己弄的,可能優化的不合理
-clean -startup plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar --launcher.library plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.1.200.v20130807-1835 -product org.eclipse.epp.package.cpp.product --launcher.defaultAction openFile -showsplash org.eclipse.platform --launcher.XXMaxPermSize 256m --launcher.defaultAction openFile --launcher.appendVmargs -vmargs -Dosgi.requiredJavaVersion=1.6 -XX:MaxPermSize=256m -Xms40m -Xmx2048m -Xss1024k -Xss1024k -XX:+DisableExplicitGC -XX:CompileThreshold=100 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=80 -Xverify:none