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