現在的位置: 首頁 > 綜合 > 正文

JSONDE

2013年09月16日 ⁄ 綜合 ⁄ 共 3154字 ⁄ 字型大小 評論關閉

1概述:

jSonde能夠幫助你分析java應用程序。

她能夠生成序列圖、CPU和內存的性能評估以及不同格式的匯總:如jar依賴等。

使用jSonde不需要特別的知識,她適用於不同的操作系統和Java環境。

jSonde主要由2個組件:

1    一個配置在Java進程中的代理,是為了收集信息

2    一個用來顯示代理收集的信息的GUI

2Java應用中配置jSonde代理

主要有2中方法將jSonde配置到Java應用中:在Java命令行附加特定的參數,或者不重啟應用的前提下動態的添加代理。

2.1動態添加代理

jSonde代理添加到應用程序中最簡單的方法:

選擇按鈕"File" / "Attach to Sun JVM",你可以看到如下對話框:

在這個對話中列出的是當前你電腦上所有的Java應用程序手冊其他章節中有關於這個對話框中其他的區域介紹)。需要注意的是這個特性只在JVM1.6+測試過,可能不能在其他版本的Java虛擬機中正常使用。

2.2通過命令行參數添加代理

假設你是通過輸入命令:」java -jar app.jar來啟動Java應用程序的。

你需要在命令行添加新的參數才能使應用啟動時具有jSonde代理特性.

新參數如下:

java -javaagent:<path-to-jSonde-folder>/lib/jsonde.agent-1.0.0.beta6.jar=60001-jar app.jar

不僅可以J2SE應用中使用jSonde分析程序,下面還有在TomcatJBoss和其他容器中使用jSonde分析程序的示例。

 

3Apache Tomcat

Microsoft Windows

 

啟動腳本%TOMCAT_HOME%/bin/catalina.bat

腳本文件中添加如下參數:

set JAVA_OPTS=-javaagent:<path-to-jSonde-folder>/lib/jsonde.agent-1.0.0.beta6.jar=60001 %JAVA_OPTS%

如果tomcat是通過Windows服務或者系統托盤啟動的,那麼就添加下面的參數:

-javaagent:<path-to-jSonde-folder>/lib/jsonde.agent-1.0.0.beta6.jar=60001

 

GNU/Linux & Mac OS X

啟動腳本: $TOMCAT_HOME/bin/catalina.sh

在腳本文件中添加如下參數:

JAVA_OPTS="-javaagent:<path-to-jSonde-folder>/lib/jsonde.agent-1.0.0.beta6.jar=60001 $JAVA_OPTS"

 

4JBoss

Microsoft Windows

啟動腳本:%JBOSS_HOME%/bin/run.bat

在腳本文件中添加如下參數:

set JAVA_OPTS=-javaagent:<path-to-jSonde-folder>/lib/jsonde.agent-1.0.0.beta6.jar=60001 %JAVA_OPTS%

 

GNU/Linux & Mac OS X

啟動腳本$JBOSS_HOME/bin/run.sh

在腳本文件中添加如下參數:

JAVA_OPTS="-javaagent:<path-to-jSonde-folder>/lib/jsonde.agent-1.0.0.beta6.jar=60001 $JAVA_OPTS"

 

5其他的應用伺服器

查看應用伺服器配置文件中設定jvm參數的地方,

注意:應該和你指定Memory選項:-Xms & -Xmx在相同的位置

 

6applets使用jSonde

jSonde能夠分析在安裝Java Plugin的瀏覽器中運行的applets

Java(TM) Plug-in Control Panel/ Advanced/Java Runtime Parameters中添加如下選項:

-javaagent:<path-to-jSonde-folder>/lib/jsonde.agent-1.0.0.beta6.jar=60001

Windows平台下,通過控制面板訪問"Java(TM) Plug-in Control Panel"

注意:如果設定選項過程中瀏覽器正在運行,那麼設定完成後你必須重啟瀏覽。

 

還可以在appletviewer添加參數-J-javaagent:<path-to-jSonde-folder>/lib/jsonde.agent-1.0.0.beta6.jar=60001

然後通過appletviewer啟動applets,此時jSonde也會起作用的

 

7通過命令行參數連接jSonde代理

在將jSonde代理參數添加到啟動腳本並且啟動程序之後,會輸出如下信息:

jSonde agent started

現在可以啟動jSonde GUI,然後選擇File¥New Project 按鈕。會看到如下的對話框,這個對話框已經在 動態添加代理章節中介紹過了。

Project name

jSonde工程名稱,用來創建工程文件。

Project files location

指定jSonde工程文件存放位置。每個工程是由一些文件名相同、後綴名不同的文件組成。

Agent host

運行jSonde代理的電腦IP地址。如果jSonde GUI和代理在同一個台電腦上,使用127.0.0.1就行了。

Agent port

連接jSonde代理和GUITCP埠。

Filters

過濾器-指定需要被分析的文件。下面的有介紹

 

8jSonde中的過濾器

能夠在jSonde指定過濾器來分析特定的Java類,這樣就可以只分析你編寫的Java類,同時還可以提升效率。

假設你所有的類文件都在包com.mycompany中,首先需要排除所有的類,不選擇*,然後選擇com.mycompany

最後點擊Connect按鈕-jSonde已經開始工作了。

9使用jSonde分析應用程序

可以使用主菜單或者左側的accordion 面板來打開不同的視圖:序列圖、報表profiling等。

10查看序列圖

選擇Sequence Diagrams,會看到由應用程序中的類組成的樹。這棵樹的根節點是jSonde發起root方法調用。

在這些指定類的生命周期中,root方法是第一個被調用的函數。(見上面關於過濾器的部分)

如果在選定的方法上雙擊,會在工作去打開一個新的序列圖標籤。

可以使用工具欄上的按鈕來調整圖的顯示,滑鼠拖動也同樣可以。

 

11查看報表

選擇Reports來查看這些報表,也可以通過主菜單來訪問。

 

11.1依賴報表

這類報表是用來查看工程源碼依賴的第三方資源(例如.jar文件),還可以用來查找缺失、冗餘的依賴。

 

11.2關於極端代碼的運行時間報表

通過運行時間找出極端代碼:

按照分組jar文件的方式列出運行最或者最被使用的方法

 

11.3拋異常最多的方法

這種報表用來匯總拋異常最多的方法。如果一個方法拋出一個異常次數很多,那麼就需要複審它的介面了。

 

12jSonde 分析

jSonde支持CPU和內存監控分析,能夠找出執行次數最多的方法、創建次數最多的對象等。

點擊 accordion 面板中的Profiler,然後選擇合適的profile視圖。

12.1CPU profiler

CPU profiler 顯示方法被調用的測試已經方法總共運行的時間。為了方便瀏覽,數據時按照樹的方式顯示:

12.2堆分析

堆分析能夠幫助用戶瀏覽Java堆快照,分析哪些對象經常被創建、哪些對象佔用大量的內存,以及其他的數據。

【上篇】
【下篇】

抱歉!評論已關閉.