摘要:前陣子,發(fā)布了一個黑科技,號稱是一個全新的通用全棧虛擬機(jī),并具有高性能跨語言交互等逆天特性,真有這么神奇簡介是一個跨語言的通用虛擬機(jī),不僅支持了等基于的語言,以及等基于的語言,還支持其他像和語言等。原生鏡像加速來看這段代碼,同樣來自官網(wǎng)。
前陣子,Oracle 發(fā)布了一個黑科技 "GraalVM",號稱是一個全新的通用全棧虛擬機(jī),并具有高性能、跨語言交互等逆天特性,真有這么神奇?
GraalVM 簡介GraalVM 是一個跨語言的通用虛擬機(jī),不僅支持了 Java、Scala、Groovy、Kotlin 等基于 JVM 的語言,以及 C、C++ 等基于 LLVM 的語言,還支持其他像 JavaScript、Ruby、Python 和 R 語言等。
GraalVM 有以下幾個特性。
更加高效快速的運行代碼
能與大多數(shù)編程語言直接交互
使用 Graal SDK 嵌入多語言
創(chuàng)建預(yù)編譯的原生鏡像
提供一系列工具來監(jiān)視、調(diào)試和配置所有代碼
官網(wǎng):http://www.graalvm.org/GraalVM 有什么用? 1、支持多種語言組合編程
來看下面這段代碼,來自官網(wǎng)。
const express = require("express"); const app = express(); app.listen(3000); app.get("/", function(req, res) { var text = "Hello World!"; const BigInteger = Java.type( "java.math.BigInteger"); text += BigInteger.valueOf(2) .pow(100).toString(16); text += Polyglot.eval( "R", "runif(100)")[0]; res.send(text); })
它同時使用了 Node.js、Java、R 三種語言,是不是很奇葩?
GraalVM 消除了各種編程語言之間的隔離性,那這種多編程語言結(jié)合使用會不會有性能影響?官方的說明是:零開銷的互操作,這樣,我們就可以為應(yīng)用程序選擇最佳的編程語言組合。
2、原生鏡像加速來看這段代碼,同樣來自官網(wǎng)。
$ javac HelloWorld.java $ time java HelloWorld user 0.070s $ native-image HelloWorld $ time ./helloworld user 0.005s
GraalVM 可以預(yù)編譯成原生鏡像,從而極大提速了啟動時間,并能減少 JVM 應(yīng)用的內(nèi)存占用。
4、可嵌入式運行環(huán)境GraalVM 可以被嵌入到各種應(yīng)用程序中,既可以獨立運行,也可以在已經(jīng)內(nèi)置好的 OpenJDK、Node.js、Oracle、MySQL 等環(huán)境中運行。
結(jié)合上面的特性,我們來看下 GraalVM 的架構(gòu)圖。
GraalVM 版本介紹如下圖所示,GraalVM 提供了社區(qū)版和企業(yè)版兩個版本。
從特性來看,上述所說的高性能、內(nèi)存優(yōu)化貌似都在企業(yè)版中??企業(yè)版或者可能只是在社區(qū)版上又增加了額外的提升吧!
社區(qū)版下載:github.com/oracle/graal/releases總結(jié)
GraalVM 這玩意看起來很不錯,可以說這就是一個全棧開發(fā)平臺,不僅支持主流編程語言,還能組合在一起編程,根據(jù)不同任務(wù)來選擇最佳的語言。另外。它還能提高更高的執(zhí)行效率,以及占用更少的內(nèi)存。
至于應(yīng)用場景,是否可應(yīng)用于生產(chǎn),現(xiàn)在還真不好說。這么一個{{BANNED}}級的產(chǎn)品,我們期待它有更好的發(fā)展吧。
@ 程序猿:你們覺得 GraalVM 前景如何,或者有什么實際用途?歡迎留言!資料:成為架構(gòu)師的十階段學(xué)習(xí)資料!
教程:史上最強 Spring Boot & Cloud 教程匯總
工具:推薦一款在線創(chuàng)作流程圖、思維導(dǎo)圖軟件
掃描關(guān)注我們的微信公眾號,回復(fù) "666" 可獲取一套Java并發(fā)編程高清視頻教程。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/76500.html
摘要:我是你們熱愛的,年過去了,我給你們總結(jié)一下這一年發(fā)生在我身上的大事。第二件事,中國的那家叫做阿里巴巴的公司正式進(jìn)入了的執(zhí)行委員會,這可是個了不起的成就。 摘要: Java年終盤點。 原文:我是Java,這是我的2018年總結(jié) 作者:劉欣 微信公眾號:碼農(nóng)翻身 Fundebug經(jīng)授權(quán)轉(zhuǎn)載,版權(quán)歸原作者所有。 我是你們熱愛的Java,2018年過去了,我給你們總結(jié)一下這一年發(fā)生在我身...
摘要:月底了,又到了我們總結(jié)這一個月技術(shù)干貨的時候了,又到了我們給粉絲免費送書的日子了。 月底了,又到了我們總結(jié)這一個月 Java 技術(shù)干貨的時候了,又到了我們給粉絲免費送書的日子了。 7 月份干貨總結(jié) Oracle 發(fā)布了一個全棧虛擬機(jī) GraalVM 一文帶你深入拆解 Java 虛擬機(jī) 圖文帶你了解 8 大排序算法 Spring Boot 2.x 新特性總結(jié)及遷移指南 Spring B...
摘要:從版本開始,不再單獨發(fā)布或者版本了,有需要的可以自己通過去定制官方解讀官方細(xì)項解讀穩(wěn)步推進(jìn)系列六的小試牛刀一文讀懂的為何如此高效棄用引擎 Java語言特性系列 Java5的新特性 Java6的新特性 Java7的新特性 Java8的新特性 Java9的新特性 Java10的新特性 Java11的新特性 Java12的新特性 Java13的新特性 序 本文主要講述一下Java11的新...
前言 在若干次前的一場面試,面試官看我做過python爬蟲/后端 的工作,順帶問了我些后端相關(guān)的問題:你覺得什么是后端? 送命題。當(dāng)時腦瓦特了,答曰:邏輯處理和數(shù)據(jù)增刪改查。。。 showImg(https://user-gold-cdn.xitu.io/2019/4/24/16a4ed4fc8c18078); 當(dāng)場被懟得體無完膚,羞愧難當(dāng)。事后再反思這問題,結(jié)合資料總結(jié)了一下。發(fā)現(xiàn)自己學(xué)過的Re...
閱讀 1505·2021-11-22 13:52
閱讀 1318·2021-09-29 09:34
閱讀 2718·2021-09-09 11:40
閱讀 3041·2019-08-30 15:54
閱讀 1268·2019-08-30 15:53
閱讀 980·2019-08-30 11:01
閱讀 1369·2019-08-29 17:22
閱讀 1960·2019-08-26 10:57