支持多語言的通用虛擬機GraalVM問世 可提供一致性能
甲骨文發布支持多語言的通用虛擬機GraalVM 1.0,該公司表示,GraalVM實現了為所有開發語言提供一致性能的目標,其新穎的架構所提供的語言獨立性,不只能促進程序間的互通性,也提高了程序可維護性。
甲骨文表示,當前用於產品階段的虛擬機,都僅針對特定語言或是一小群程序語言提供高性能執行,而編譯、內存管理以及工具的使用都違反了一次且僅一次原則(Don』 t repeat yourself,DRY)。這樣不只會給虛擬機實做工作帶來龐大的困難,而且不一致的性能表現以及工具配置也會帶給開發者沉重負擔。況且不同語言撰寫的程序間溝通,串列化及反串列化成本極高,而笨重龐大的高性能虛擬機又難用以嵌入。
甲骨文實驗室為了解決現存虛擬機的缺陷,數年前啟動了虛擬機研究計劃,期望以新穎的架構找到新出路,而GraalVM 1.0便是這項研究的最新結果。
GraalVM其強大的功能之一,便是能讓程序語言互相調用訪問對方的對象,而不需要事先進行轉換。例如開發者可以用Node.js訪問Java函數庫,還是以Java調用Python程序,抑或是用R語言訪問其他語言維護的數據以創建複雜的SVG。甲骨文認為,這種開發彈性,能讓開發人員使用最適合的語言完成任務。
目前發布的GraalVM 1.0已經能夠支持多類開發語言,像是Java、Scala、Groovy或Kotlin的JVM語言,還有Javascript或是Node.js也可以,另外,由C、C++或是Rust產生的LLVM比特代碼,以及Ruby,R和Python都不是問題。
GraalVM可以獨立執行,也可以嵌入OpenJDK或Node.js作為平台的一部分,甚至是嵌入MySQL或Oracle RDBMS等資料庫中。應用程序可以通過標準化的GraalVM執行環境,靈活的跨堆棧部署,而在數據處理引擎中,GraalVM能讓程序以自定義格式訪問,而不需要付出任何結構轉換成本。
而對於JVM的語言來說,GraalVM提供了創建預編譯原生鏡像文件的機制,不只能立即啟動應用程序,而且還具有低內存消耗的優點。產生鏡像文件的過程,GraalVM會執行靜態分析,從主要Java方法搜索可用的程序代碼,並進行完整預編譯(Ahead-of-Time,AOT),最後產生原生的二元執行碼,能立即啟動並執行。
GraalVM提供開發語言虛擬化的概念,讓所有語言以及工具都能嵌入使用。甲骨文表示,接下來會特彆強化GraalVM對Python,R和Ruby的支持。
※2017年圖靈獎得主出爐 全球99%微處理器都用他們發明的技術
※動不動就高調宣布要超過蘋果 蘋果卻默默賺走近九成利潤
TAG:十輪網 |