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). 

外部連結

編輯