u JRockit是BEA公司開發的Intel平臺之上的高性能以及高可管理性的jvm產品,在Intel平臺上使用JRockit無疑會大大的提高效率。使用向導建立server的配置的時候,可以選擇JRockit作為該server的虛擬機,另外,也可以在域的startWebLogic.cmd或者startWebLogic.sh腳本中配置使用JRockit。
使用JRockit:
set JAVA_VENDOR=BEA
set JAVA_HOME=c:\bea\jrockit81sp4_142_05
使用Sun的jvm:
set JAVA_VENDOR=Sun
set JAVA_HOME=c:\bea\jdk142_05
u 與java虛擬機相關的參數配置可在startWebLogic.cmd或者startWebLogic.sh腳本中設置,在其執行java命令之前一行加入如下指令:
set JAVA_VM=%JAVA_VM% “這里加入虛擬機參數”
JRockit上的一些參數解釋如下:
選項 |
描述 |
-X |
顯示擴展Java選項 |
-Xallotype
-Xallocationtype |
可取值global和local,定義使用本地線程還是全局線程。
global,在最大堆尺寸比較小時(小于128M)或者應用程序大量使用了線程時使用。 local,在最大堆尺寸比較大時(大于128M)或者應用程序少量使用了線程時使用。
每個本地線程區都要消耗大約2K的內存,如果大量地使用了線程,本地線程不但會造成內存空間浪費,而且還會造成堆碎片。使用全局線程機制會減少堆碎片,但在內存分配方面速度要慢一些。 |
-Xbootclasspath |
指定類搜索路徑,可以是ZIP和JAR文件,以;或:分隔 |
-Xcleartype |
定義內存清理時機,可取值gc, local, alloc。gc表示在垃圾回收時清理內存;local表示時分配一塊local線程區時清理;alloc表示內存區要被分配給其它對象時清理 |
-Xgc |
選擇要使用的垃圾回收器的類型,可取值:
gencopy:分代復制收集(默認)適合調試期間使用
singlecon:單空間并發,無中斷并發
gencon:世代并發,暫停時間最短
parallel:parallel并行回收器,會導致應用程序間歇暫停,但會帶來最大吞吐量。
如果-Xmx小于128M,缺省使用gencopy,否則使用gencon |
-Xgcpause |
打印由垃圾回收器造成的停頓時間 |
-Xgcreport |
打印垃圾回收報表 |
-Xjvmpi |
是否允許JVMPI事件,這些事件有:
entryexit(缺省ON)
allocs(缺省ON)
monitors(缺省ON)
arenasdelete(缺省OFF)
例如:-Xjvmpi:allocs=off,monitors=off,entryexit=off |
-Xmanagement |
激活JVM中的管理服務器,在JVM的管理控制臺能連接到它之前,必須先激活。 |
-Xms |
設置初始堆大小,單位有K、M、G |
-Xmx |
設置最大堆大小,單位有K、M、G
建議:應設置-Xms=-Xmx以免去分配堆的時間 |
-Xnativethreads |
使用本地線程系統,這是缺省選項 |
-Xnoclassgc |
禁止對類作垃圾回收 |
-Xnohup |
告訴JRockit,忽略CTRL_LOGOFF_EVENT和SIGHUP事件 |
-Xns |
設置nursery尺寸,單位有K、M、G
Nursery是垃圾回收器用來存放臨時對象的地方,應該在保證垃圾回收暫停時間最短的情況下,盡量大的調整nursery的值。
對于-Xgc:gencopy,缺省的Nursery大小為320KB/CPU,對于10個CPU的系統來說,Nursery大小為3200KB(3.2M)對于-Xgc:gencon,缺省的Nursery大小為10M/CPU,對于10個CPU的系統來說,Nursery大小為100M |
-Xss |
設置線程棧尺寸,單位有K、M、G |
-Xthinthreads |
使用JRockit的高性能線程系統,在IA64上不可用。
注意:瘦線程系統目前還沒有全面推廣,不建議使用 |
-Xverbose |
讓JRockit打印更多的信息,可選的參數有:
codegen、cpuinfo、gc、load、memory、Opt |
-Xverify |
作完整的bytecode一級的校驗 |
u JRockit的管理控制臺的使用
在JRockit的啟動參數中加入-Xmanagement,以便啟動JRockit的時候同時啟動其Management Server。
在JRockit的bin目錄下,運行console.exe程序
建立一個新的連接,連接需要監視的JRockit(監視端口默認為7090)
在JRockit Management Console中,將Tools/Preferences菜單中的Mode of operation屬性設為developer
在Method Profiler屬性頁中添加你所需要觀察的類的成員方法
按Start按鈕讓Method Profiler開始進行統計