Jikes研究虛擬機器
此條目需要擴充。 (2011年10月23日) |
開發者 | Jikes RVM Project Organization |
---|---|
目前版本 | 3.1.3(2013年2月12日 | )
原始碼庫 | |
程式語言 | Java |
作業系統 | 類Unix系統 |
類型 | Java虛擬機器 |
許可協定 | Eclipse公共許可證 |
網站 | jikesrvm |
Jikes研究虛擬機器(Jikes Research Virtual Machine,簡稱Jikes RVM)是一種成熟的用於執行Java程式的虛擬機器,其早期版本與目前版本分別在通用公共許可證(CPL)與Eclipse公共許可證(EPL)下開放代碼。與其他以Java編寫的虛擬機器不同的是,Jikes RVM採用了元迴圈技術。
歷史
[編輯]- 1997年11月,Jalapeño專案作為IBM華生研究中心的一個內部專案啟動。
- 1999至2000年間,IBM研究人員發布了關於Jikes RVM的新特性的研究資料,一些大學也獲得閱覽Jikes RVM原始碼的權利。
- 2002年,2.2版發布,該版的垃圾精確回收器用流行的主記憶體管理工具包重構。
- 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 Harmony與GNU Classpath類別館,對OpenJDK類別館的實驗性支援也已加入。
- 編譯器
Jikes RVM使用基線編譯器來快速地為特定的架構生成代碼,而後的動態自適應編譯利用帶有如棧替換等特性的最佳化編譯器重編譯代碼,其中動態自適應編譯系統使用成本-收益分析模型。
- 執行時
Jikes RVM的執行時有著許多新穎的特性,例如快速鎖定機構,協同運作排程機構以及對異常的快速收集與排程的支援。
- 處理器支援
Jikes RVM可以支援使用Power PC(即ppc)與IA-32(即x86)指令集的處理器。
- 研究
正如其名所示,Jikes RVM是個研究專案,因而功能側重於用於研究新技術[2]。
Jikes RVM也出現在了07、08、10、11年的Google編程之夏比賽中[3]。
參考
[編輯]- ^ Jikes RVM Project Proposals 2009. [2011-10-25]. (原始內容存檔於2012-04-25).
- ^ "Jikes RVM research papers". [2011-10-23]. (原始內容存檔於2011-10-02).
- ^ Jikes RVM - Google Summer of Code 2011. [2011-10-23]. (原始內容存檔於2011-10-02).
外部連結
[編輯]- Jikes RVM在SourceForge的專案 (頁面存檔備份,存於網際網路檔案館) (英文)
- DaCapo Benchmarks (頁面存檔備份,存於網際網路檔案館) (英文)
- WALA (頁面存檔備份,存於網際網路檔案館) (英文)
- PearColator (英文)
- IBM DevelopWorks中Jikes RVM的介紹 (頁面存檔備份,存於網際網路檔案館) (中文)