NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

原生编译加速 Java | InfoQ 专题

作者:Karsten Silz

  • 2022-07-08
  • 本文字数:1143 字

    阅读完需:约 4 分钟

原生编译加速Java | InfoQ专题

Java 主导着企业级应用。但在云计算领域,采用 Java 的成本比它的一些竞争对手更高。原生编译降低了在云端采用 Java 的成本:用它创建的应用程序启动速度更快,使用的内存更少。


那么,Java 用户的问题来了:原生 Java 是如何改变开发方式的?我们在什么情况下应该切换到原生 Java?什么情况下又不应该切换?我们应该使用什么框架?本系列文章将回答这些问题。


1. Java革新之路:GraalVM原生镜像


GraalVM 原生镜像是一种预先编译器,它可以生成原生 Java 可执行文件。这些可执行文件启动非常快,使用更少的 CPU 和内存。这降低了在云端使用 Java 的成本。GraalVM 甚至可以达到与 JVM 相当的峰值吞吐量。许多 Java 框架已经支持 GraalVM,如 Spring Boot、Micronaut、Quarkus、Gluon 等。


作者:Alina Yurenko


2. 为 Java 提速:用 Quarkus 开发 Kubernetes Native Java 应用


在原生和基于 JVM 的 Java 应用程序的启动时间和内存利用率方面,Quarkus 都是业界的佼佼者。它降低了云计算的采用成本。在 Quarkus 中,Kubernetes 是一等部署平台,Kubernetes 的原语和特性都得到了良好支持。开发者可以继续使用他们已掌握的 Java API 知识,如 Jakarta EE、MicroProfile、Spring 等。应用程序可以是命令式的,也可以是响应式的,或者两者兼而有之!


作者:Jason GreeneJohn ClinganEric Deandrea


3. 现实世界中的原生 Java


部署在 Kubernetes 上的微服务是原生 Java 的一个绝佳应用场景:它们有很多框架和 Java 运行时。原生 Java 的构建、调试、测试、部署和配置需要更多的工作量。应用程序框架应该在生产环境中完全支持原生 Java。原生 Java 的采用可以是渐进式的,但原生 Java 应用程序只有在所有库都支持原生 Java 的情况下才能工作。


作者:KimJohn QuinnRakesh RajaJason Moehlman


4. Java 云原生之路:Micronaut 框架


Micronaut 框架为构建云原生 Java 微服务提供了坚实的基础。它减少了对 Java 反射、运行时代理生成和动态类加载的使用。与 GraalVM 提前编译(AOT)的紧密集成可见 Micronaut 框架采用量的增长。编译时检查增加了类型安全并提高了开发人员的开发效率。


作者:Graeme Rocher


5. 借助 Spring Boot 和 GraalVM 实现原生 Java


将于 2022 年底推出的 Spring Boot 3 和 Spring Framework 6 将内置对原生 Java 的支持。对于 Spring Framework 5.x 和 Spring Boot 2.x 来说,Spring Native 是可行之道。Spring Native 为 Spring 庞大的库生态系统提供了集成能力。它还提供了一个组件模型,支持对其他库进行原生编译。


作者:Josh Long


6. 标准化原生 Java:拉近 GraalVM 和 OpenJDK 的距离


原生 Java 对于 Java 在不断演进的云世界中保持相关性至关重要。原生 Java 还有待完善。开发生命周期也需要做出调整。通过 Leyden 来实现标准化是原生 Java 取得成功的关键。OpenJDK 需要引入原生 Java,以便与其他增强功能共同演进。


作者:Andrew DinnDan Heidinga

2022-07-08 09:175421

评论

发布
暂无评论
发现更多内容

附PPT丨广东移动智慧中台能力运营实践

dbaplus社群

中台 中台战略

架构师入门感悟之十

笑春风

Github标星5.3K,网易云的朋友给我这份339页的Android面经,附赠课程+题库

欢喜学安卓

android 程序员 面试 移动开发

Android开发全套学习!不同层级的Android开发者的不同行为,学习路线+知识点梳理

欢喜学安卓

android 程序员 面试 移动开发

记一次由Arthas引起的Metaspace OOM问题

闲鱼技术

Java 阿里巴巴

《爱奇艺安全应急响应中心漏洞评分标准2021》来了

爱奇艺技术产品团队

安全 安全漏洞

explicit_defaults_for_timestamp 参数详解

Simon

MySQL 七日更

LeetCode题解:42. 接雨水,双指针,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

爱奇艺用户分析平台实践:TB级数据查询秒级返回

dbaplus社群

大数据

区块链发展的3个必经阶段究竟是什么

CECBC

去中心化

第五周作业

胡益

字节跳动自研「BVC2.0」视频编码器在 MSU 2020 中获得四项第一

字节跳动技术团队

字节跳动 视频编码

领域驱动设计DDD

积极&丧

毕业三年,如何达到月薪30K?我想跟你聊聊!!

冰河

程序员 程序人生 架构师 升职加薪 提升自我

Mybatis【9】-- Mybatis占位符#{}和拼接符${}有什么区别?

秦怀杂货店

mybatis 预编译

反垄断之下 区块链迎来新生?

CECBC

区块链

一直在云上的星空联盟,“真”上云了

亚马逊云科技 (Amazon Web Services)

云计算 AWS

Angel推荐算法在游戏推荐中的应用

DataFunTalk

学习

Lambda【1】-- List相关Lambda表达式使用(上篇)

秦怀杂货店

Java Lambda

设计模式【1】-- 单例模式到底几种写法?

秦怀杂货店

设计模式

设计模式【1.1】-- 你想如何破坏单例模式?

秦怀杂货店

设计模式 单例 23种设计模式

附PPT丨如何构建数据库容器化PaaS

dbaplus社群

数据库 容器

安卓开发快速学习!一个小例子彻底搞懂Android的MVP模式到底是什么?面试必问

欢喜学安卓

android 程序员 面试 移动开发

Mybatis【8】-- Mybatis返回List或者Map以及模糊查询怎么搞?

秦怀杂货店

Java mybatis

JustSwap交易所系统APP开发|JustSwap交易所软件开发

系统开发

星环科技助力商业银行机器学习平台建设

星环科技

FinTech

开一个世界末日的脑洞

熊斌

我的世界 生活记录 七日更

Mybatis【7】-- Mybatis如何知道增删改是否成功执行?

秦怀杂货店

Java mybatis

“区块链+”产业生态雏形已现 安全监管逐步完善

CECBC

区块链 区块链生态

字节跳动开源云原生机器学习平台 Klever

字节跳动技术团队

学习 字节跳动

架构师训练营第五周课后作业

万有引力

原生编译加速Java | InfoQ专题_云原生_InfoQ精选文章