1. 程式人生 > >使用JRockit Mission Control監控Java程式執行效能

使用JRockit Mission Control監控Java程式執行效能

使用JRockit Mission Control監控Java程式執行效能

BEAJRockit JDKBEA公司自己開發的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程式。(7091Mission 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。