u       JRockitBEA公司開發(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

使用Sunjvm

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

可取值globallocal,定義使用本地線程還是全局線程。

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

指定類搜索路徑,可以是ZIPJAR文件,以;或:分隔

-Xcleartype

定義內(nèi)存清理時(shí)機(jī),可取值gc, local, allocgc表示在垃圾回收時(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í)間最短

parallelparallel并行回收器,會(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è)置初始堆大小,單位有KM、G

-Xmx

設(shè)置最大堆大小,單位有K、MG

建議:應(yīng)設(shè)置-Xms=-Xmx以免去分配堆的時(shí)間

-Xnativethreads

使用本地線程系統(tǒng),這是缺省選項(xiàng)

-Xnoclassgc

禁止對(duì)類作垃圾回收

-Xnohup

告訴JRockit,忽略CTRL_LOGOFF_EVENTSIGHUP事件

-Xns

設(shè)置nursery尺寸,單位有KM、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大小為3200KB3.2M)對(duì)于-Xgc:gencon,缺省的Nursery大小為10M/CPU,對(duì)于10個(gè)CPU的系統(tǒng)來(lái)說(shuō),Nursery大小為100M

-Xss

設(shè)置線程棧尺寸,單位有KM、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

JRockitbin目錄下,運(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ì)