BEA的JRockit JDK是BEA公司自己开发的JDK。使用JRockit JDK运行Java程序,就可以使用Mission Control程序监控Java程序的运行情况。
使用BEA的JRockit Mission Control可以查看Java程序在运行时的各种指标。可以帮助你找到Java程序的性能瓶颈和引起问题的是哪些类。从而帮助我们提高Java程序的性能。
一、JRockit JDK
1,安装JRockit JDK。安装完毕后,cmd中执行java –version
可以看到现在执行java实际使用的是JRockit的JDK。
2,有些启动Java程序的方式,使用的是操作系统的配置来查找JDK的。如Ant就是这样查找JDK的。
因此,需要修改操作系统变量的配置。
JAVA_HOME=JRockit JDK的安装目录
二、Mission Control程序
内存泄漏和JRA记录这2个功能,需要付费。也可以下载免费的license文件,可以使用1个小时。
1,首先启动Mission Control程序,在Discovered->Local下,下面是进程号和各个JRockit下启动的Java进程。
2,然后启动要测试的Java程序,现在,我们看到的新增的一个进程,就是了。
3,右击Start Console,可以看到该Java进程的CPU和内存占用情况。
注意,Java堆的内存占用要比操作系统的任务管理器中该Java进程的内存占用低很多。而且,使用Mission Control监控java进程,也会大大增加该进程的内存占用。
三、通过指定Java程序使用的网络端口来使用Mission Control程序监控Java程序
1,使用jvm的参数,可以指定Java程序使用的端口,来使用Mission Control程序监控该Java程序。
如:
java -Xmanagement -Dcom.sun.management.jmxremote.port=7091 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
这样来启动一个要监控的Java程序。
这指定了使用7091端口来启动该java程序。(7091是Mission Control程序的向导默认使用的端口,我们可以使用任意的其他端口)
2,启动Mission Control程序,点击Connectors,新建一个连接。
修改该程序的主机和使用的端口为要监控的程序所在的位置和使用的端口即可。
完成后,就可以像上面那样使用进程的方式来监控该Java程序的运行情况了。
四、Ant任务如何使用JVM参数启动java程序
<java classname="com.withub.bossservernio.common.code.Launcher" failonerror="true" fork="yes" maxmemory="256m">
<classpath refid="BossServerNio.classpath"/>
<jvmarg value="-Xmanagement,-Dcom.sun.management.jmxremote.port=7091,-Dcom.sun.management.jmxremote.authenticate=false,-Dcom.sun.management.jmxremote.ssl=false"/> </java>
Ant的<java>任务下有一个元素<jvmarg>可以指定要使用的JVM参数。其中,使用value属性来保存JVM参数。
注意,其中不是使用空格来分隔JVM参数的,而是使用“,”来分隔多个JVM参数的。
如果指定这些参数启动Java程序失败,那么应该是因为,你使用的并不是BEA的JRockit JDK而是其他的JDK,如SUN的JDK或者IBM的JDK。
请参考第一部分正确安装和配置BEA的JRockit JDK。