u JRockit是BEA公司开发的Intel平台之上的高性能以及高可管理性的jvm产品,在Intel平台上使用JRockit无疑会大大的提高效率。使用向导建立server的配置的时候,可以选择JRockit作为该server的虚拟机,另外,也可以在域的startWebLogic.cmd或者startWebLogic.sh脚本中配置使用JRockit。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
使用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,在最大堆尺寸比较小时(小于<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="128" unitname="m"><span lang="EN-US">128M</span></chmetcnv>)或者应用程序大量使用了线程时使用。 每个本地线程区都要消耗大约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(<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="3.2" unitname="m"><span lang="EN-US">3.2M</span></chmetcnv>)对于-Xgc:gencon,缺省的Nursery大小为<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="10" unitname="m"><span lang="EN-US">10M</span></chmetcnv>/CPU,对于10个CPU的系统来说,Nursery大小为<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="100" unitname="m"><span lang="EN-US">100M</span></chmetcnv> |
-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 开始进行统计