Jikes研究虛擬機

Jikes研究虛擬機(Jikes Research Virtual Machine,簡稱Jikes RVM)是一種成熟的用於執行Java程序虛擬機,其早期版本與當前版本分別在通用公共許可證英語Common Public License(CPL)與Eclipse公共許可證(EPL)下開放代碼。與其他以Java編寫的虛擬機不同的是,Jikes RVM採用了元循環技術。

Jikes研究虛擬機
開發者Jikes RVM Project Organization
當前版本3.1.3(2013年2月12日,​11年前​(2013-02-12
源代碼庫 編輯維基數據鏈接
編程語言Java
操作系統類Unix系統
類型Java虛擬機
許可協議Eclipse公共許可證
網站jikesrvm.org

歷史

  • 1999至2000年間,IBM研究人員發布了關於Jikes RVM的新特性的研究資料,一些大學也獲得閱覽Jikes RVM源代碼的權利。
  • 2001年10月,Jikes RVM 2發布,並以通用公共許可證(CPL)開放源代碼。2.0版支持PowerPCIntel架構,而且也支持許多不同的垃圾回收算法。
  • 2004年,2.4版發布,這一版本的設計尤其注重於用以運行Eclipse,而穩定性與性能也較之前有一定程度的提高。
  • 2007年,2.9版開始開發,此版重寫大量代碼來利用Java5.0的新特性並使用了螞蟻系統。
  • 2008年,3.0版發布,這標誌了2.9版開發的完結,Jikes RVM的代碼基底也再次趨於穩定。
  • 2009年,3.1版以Eclipse公共許可證(EPL)發布,此版相對於3.0.1版性能大幅提升,並且提供了對原生線程的切換支持。

特性

引導

Jikes RVM採用了元循環技術,因而其需要運行在一個引導Java虛擬機(JVM)上來創建啟動鏡像。啟動鏡像在運行時由一個小型的C裝入程序載入,其本質是Jikes RVM啟動必須的對象的集合,這些對象則是利用引導JVM的反饋所創建。

VM Magic

編譯器在VM Magic里為一個類別生成不同的代碼(而非字節碼)。VM Magic類別允許對內存的直接訪問,是影響內存管理工具包的性能的關鍵所在。VM Magic類別被包含於org.vmmagic包內,同時也為其他的Java項目所使用。

內存管理工具包

內存管理工具包(MMTk)是在Jikes RVM與其他項目(如Singularity系統和Rotor軟件項目[1])都有使用的垃圾精確回收器的一個集合。正如Jikes RVM其他部件一樣,MMTk是用Java實現的,但主要還是依賴於VM Magic。

類庫

Jikes RVM已經可以使用Apache HarmonyGNU Classpath類庫,對OpenJDK類庫的實驗性支持也已加入。

編譯器

Jikes RVM使用基線編譯器來快速地為特定的架構生成代碼,而後的動態自適應編譯利用帶有如棧替換等特性的優化編譯器重編譯代碼,其中動態自適應編譯系統使用成本-收益分析模型英語Cost–benefit analysis

運行時

Jikes RVM的運行時有着許多新穎的特性,例如快速鎖定機構,協作調度機構以及對異常的快速收集與調度的支持。

處理器支持

Jikes RVM可以支持使用Power PC(即ppc)與IA-32(即x86)指令集的處理器

研究

正如其名所示,Jikes RVM是個研究項目,因而功能側重於用於研究新技術[2]

Jikes RVM也出現在了07、08、10、11年的Google編程之夏比賽中[3]

參考

  1. ^ Jikes RVM Project Proposals 2009. [2011-10-25]. (原始內容存檔於2012-04-25). 
  2. ^ "Jikes RVM research papers". [2011-10-23]. (原始內容存檔於2011-10-02). 
  3. ^ Jikes RVM - Google Summer of Code 2011. [2011-10-23]. (原始內容存檔於2011-10-02). 

外部連結