国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Java應用性能的提升

2019-11-18 13:26:50
字體:
來源:轉載
供稿:網友

  從Sun實驗室中的GCspy、Ace、JFluid項目看
  沈捷
  
  從1995年James Gosling發明至今,java的發展早已逾越了一門單純計算機語言的范疇,成為了一個涵蓋范圍非常廣的平臺。在下面的篇幅里,筆者會就一些有趣的、帶有研究性質的項目進行介紹。
  Java應用性能的提升


  Ace_1: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的網站上(http://research.sun.com/PRojects/ace/)去看看用Ace開發的Java Pet Store。看看在短短的224行代碼里,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上。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南漳县| 千阳县| 佛山市| 芮城县| 三明市| 军事| 竹溪县| 太仓市| 惠州市| 石渠县| 清水县| 达尔| 广南县| 贡觉县| 长顺县| 襄樊市| 军事| 邛崃市| 河津市| 潞西市| 石棉县| 普兰店市| 宽城| 霍邱县| 南充市| 台北县| 正镶白旗| 东乡县| 德化县| 雷州市| 成安县| 姚安县| 武鸣县| 紫金县| 光泽县| 历史| 华安县| 溧水县| 凤城市| 济宁市| 湟源县|