RedHat Mandrel使Java成为原生的

2020-07-02 09:51:42

RedHat引入了一个新的Java发行版Mandrel,它可以将Java应用程序直接编译成本机代码,从而以更低的内存实现更快的启动。

基于Oracle的GraalVM,Mandrel提供了一个额外的社区支持的构建,差别很小。RedHat的高级工程总监Mark Little解释说,最好的描述是采用特殊打包的GraalVM本机映像分发常规OpenJDK。RedHat引入Mandrel背后的主要驱动因素是提高Quarkus框架的速度和效率,其超音速亚原子Java。Quarkus框架既提供本地开发,也提供快速重新加载,以及容器或无服务器分发到以下位置。(注:RedHat的高级工程总监马克·利特尔解释道,最好的描述是,将常规OpenJDK与专门打包的GraalVM本机映像一起发布到本地。RedHat引入Mandrel的主要驱动因素是提高Quarkus框架的速度和效率,它的超音速亚原子Java。";Quarkus框架既提供快速重新加载的本地开发功能,也提供面向。自2019年首次推出以来,Quarkus一直强调构建本机可执行文件的能力,这些文件可以更快地启动并降低云运营成本和资源。

GraalVM的负责人Thomas Werthinger对曼德雷尔的发布做出了回应,他说,谢谢你@maxandersen和同事们积极参与@graalvm社区!";

安德烈斯·丁恩在Quarkus Insight系列视频的第7集中解释了GraalVM和Mandrel的角色。视频解释了用法以及各种技术细节,并提出了诸如即时编译和提前编译之间的区别等问题。丁恩解释了每种方法的优点和缺点,以及它们最适合的地方。

Mandrel的GitHub存储库代表GraalVM的一个分支,但还不提供二进制分发。相反,用户可以按照提供的说明自行编译JDK。

在性能基准测试中,GraalVM的启动时间提高了50倍,内存使用量减少了5倍。针对Java的热点模式,使用Quarkus框架的以前版本完成测试。虽然这一改进需要额外的提前编译时间,但它与Quarkus的本机Lambda和Azure函数部署一起使用。

其他提示和技巧可以通过James Ward获得,他已经以本地编译的形式对几个框架进行了基准测试。Ward介绍了性能改进的好处以及一些陷阱,例如依赖反射的应用程序。这会给GraalVM本机映像带来问题,因为反射发生在运行时,这使得AOT编译器很难找出执行路径。";对于不需要反射的应用程序,Quarkus的主页直接针对其好处:12MB的RAM与73MB相比(减少83%),与.943相比(减少98%),第一次响应的时间为0.016秒。

开发人员现在可以在自己的构建中使用Mandrel,也可以利用GraalVM Community或任何JDK 11+发行版。感兴趣的开发者也可以用它们来参加Quarkus黑客马拉松比赛。

InfoQ上上周内容的综述每周二都会发布。加入一个超过25万名高级开发人员的社区。查看示例。

选择您的国家/地区我同意InfoQ.com按照本隐私声明中的说明处理我的数据。