JProbe可整合Eclipse Project、IBM WebSphere Studio Application Developer及VisualAge for Java、Borland JBuilder、Sun ONE Studio及Oracle Jdeveloper等開發工具,並支援BEA WebLogic、Sun One、Apache Tomcat及JServ、Micromedia JRun、Silverstream、Borland AppServer及Oracle9i AS等應用伺服器。透過JVM Profiling Interface蒐集底層資訊

JProbe透過JProbe Analysis Engine蒐集分析資料,監控端以JVM啟動JProbe主控臺,即可透過TCP/IP連上Analysis Engine,監控的測試過程。由於一般的JVM不會讓使用者接觸到底層的資訊,所以JProbe測試時,必須藉由一個實作過JVM Profiling Interface的JVM來提供測試的資訊,目前支援的JDK版本包括JDK 1.1.7、1.1.8、1.2.2、1.3.1及1.4,但不是所有平臺的JDK都會支援。如果企業的JVM不支援JVM Profiling Interface,JProbe本身內建一個JVM供開發人員使用,JProbe Analysis Engine會以這個JVM執行測試,並且將分析結果存成快照,供主控臺分析效能數據。

為符合使用者的測試環境,JProbe提供Local Session、Remote Session及Run Without Monitoring三種監控模式,Local Session即單機測試的架構,是最單純的環境;Remote Session是主控臺遠端連線至伺服器執行測試與監控;Run Without Monitoring則是離線的監控機制。Threadalyzer及Coverage確保程式正確性

JProbe共分成Profiler、Memory Debugger、Threadalyzer及Coverage四個不同的工具, Profiler是分析方法(Method)的工具,可找出那個方法耗費最多執行時間。

Memory Debugger可分析每個類別(Class)的Instance(實體)數量,找出JVM裡是否有殘留的Instance而降低效能。Threadalyzer是執行緒(Thread)的分析工具,可避免執行緒鎖死或是競爭的情況。Coverage則是程式碼分析工具,可找出程式碼未被執行的部分。Memory Debugger及Profiler剖析執行效能

雖然Java的資源回收功能,會自動回收無用的記憶體空間,但不良的程式邏輯或開發人員忘了關掉資源,即導致物件閒置佔用記憶體。此外,資源回收動作本身也會消耗記憶體,因此若程式邏輯使用太多暫存性資料,導致頻繁的記憶體回收,也會影響效能,這些邏輯及演算法造成的效能問題,不透過工具難以發現,Memory Debugger可協助監看Heap的使用量,並統計Instance的數量,也可設定規則當Instance超過設定值時,即通知使用者。

程式的瓶頸可能緣自於沒有效率的演算法,例如重複呼叫其他的程式、在主執行緒執行計算,或沒有使用快取機制導致不停的重新計算。經由Profiler就可以幫助開發人員找出真正關鍵的方法進而改善,若是無法改善,可以在使用者介面設計顯示狀態,告知使用者程式忙錄中而非當機。文⊙李延華

熱門新聞

Advertisement