從Sun實驗室中的GCspy
Ace
JFluid項目看
沈捷
從
年James Gosling發明至今
Java的發展早已逾越了一門單純計算機語言的范疇
成為了一個涵蓋范圍非常廣的平台
在下面的篇幅裡
筆者會就一些有趣的
帶有研究性質的項目進行介紹
Ace_
:NameTool的業務對象及邏輯
在Sun的實驗室裡有一些有意思的項目在進行著
比如GCspy
GCspy是一個使內存管理工作可視化的框架(當然它會包括一個實現了這個框架的工具)
我們可以用它動態地考察系統的內存分配
垃圾回收等行為
如果用戶需要
它甚至可以把追蹤下來的內存管理行為進行
回放
(replay)
為了把對被觀察系統的影響減至最低
GCspy采用client
server結構
以socket作為通信方式
在這種方式下
客戶端還可以靈活地決定何時跟服務器連接
在圖形客戶端上
我們可以以不同的視圖來觀察系統的內存管理工作
除了動態的觀察系統行為
GCspy還可以對指定的一段時間做出趨勢圖
這可以使我們對系統的內存管理有一個整體的了解
適當地應用GCspy的這些功能
對我們調整GC參數會非常有啟發
其他還有一些處於研究階段的項目
首先看看Ace
通過這個名字
我們便可以感覺到這個項目的目標——完成一個復雜的項目就像通過一記Ace球得分一樣簡單
Ace的目的是為企業級應用建立一種規格語言(Specification Language)
以及與之相配套的編譯器
這種語言與架構無關
這使得精通業務的專家可以用它去描述應用系統的功能
用它寫出一份簡練的系統規格說明
而不用涉及任何與系統架構相關的實現細節
之後
我們可以用Ace的編譯器來生成實現和部署這一應用所需的所有代碼和描述文件
與現有IDE中的代碼生成向導(wizard)不同
我們無需對Ace編譯器產生的代碼作任何編輯和修改
對於不同的中間件產品
不同的系統架構
我們只需重新編譯一遍用Ace規格語言所寫的源代碼
不僅如此
Ace編譯器還具有代碼優化功能
一份Ace規格說明由兩部分組成
分別是
應用程序的業務對象及邏輯
和應用程序的業務流程
聽起來是不是有些難以置信?到Sun的網站上()去看看用Ace開發的Java Pet Store
看看在短短的
行代碼裡
Ace到底幫我們做了些什麼
接下來我們看看JFluid
JFluid是一個動態性能分析工具(dynamic application profiling tool)
和現有的分析工具不同
JFluid的操作完全發生在應用正常運行的過程中
也就是所謂的on
the
fly profiling
在程序的運行時間(run time)
我們可以隨時打開
關閉
重新配置附屬在JVM上的JFluid
JFluid可以動態地把一段用於分析的字節碼附加到正在運行的Java代碼中
而這段Java代碼可以是正在運行的應用系統中任意指定的一個子集
任意一個或多個方法
被加進去的JFluid字節碼會產生用於分析的事件
這些事件被記錄下來之後
會據此產生性能報告
報告會以我們通常所看到的格式(比如在OptimizeIt裡那樣)顯示出來
通過這個工具
我們可以花費更少的努力
更靈活地得到程序運行的動態信息
不過
由於JFluid需要用到虛擬機的
動態字節碼
(dynamic bytecode instrumentation)功能
所以它只能運行在具有這一功能的
尚未正式發布的新版HotSpot JVM上
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19705.html