速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

原生编译加速 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:175563

评论

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

趁早

小天同学

个人感悟 成功 4月日更 恋爱 趁早

场景化面试:能聊聊你对充血模型和贫血模型的理解吗?

面试官问

领域驱动设计 DDD 充血模型 贫血模型

Rust从0到1-结构体-方法

rust 方法 struct 结构体 method

maven中心仓库OSSRH使用简介

程序那些事

Java maven 程序那些事

Edge 修改使用的默认搜索引擎

HoneyMoose

容器&服务: ClickHouse与k8s架构

程序员架构进阶

Kubernetes Prometheus Clickhouse 28天写作 4月日更

知乎高赞:为什么同样是分布式架构的Kafka需要Leader而Redis不需要

中间件兴趣圈

分布式 raft 一致性 数据分片

优秀程序员必备技能之如何高效阅读源码

中间件兴趣圈

方法论 源码解读

我用Rocket-API实现了开放平台

棒锤🐮

强化区块链应用 破解知识产权运营难题

CECBC

区块链

传统金融体系vs新金融体系,区块链改变了什么?

CECBC

金融

世界五百强第一的沃尔玛在用区块链做什么

CECBC

区块链

在华为云专属月中,寻觅互联网更需要的云味道

脑极体

2021 优质前端资源精选 —— 持续更新,欢迎共建

清秋

大前端 教程 资源 社区 4月日更

函数

奈奈奈奈

基于树莓派和OpenVINO的边缘计算

IT蜗壳-Tango

IT蜗壳教学 4月日更

区块链给普通人带来的机会!

CECBC

区块链

Wireshark数据包分析学习笔记Day28

穿过生命散发芬芳

Wireshark 数据包分析 4月日更

7.1 Go语言从入门到精通:Cobra介绍

xcbeyond

cobra Go 语言 4月日更

什么是你上大学才知道的事情?

🌍

4月日更

如何在 GitHub 上选择合适的开源工具和项目

耳东@Erdong

GitHub 4月日更

如何避免成为一个油腻的中年猥琐男?

石云升

读书笔记 中年 28天写作 4月日更

我叫小M,立志建立MySQL帝国。

yes

MySQL

来学Python啦,用Python详细讲解温度转换器

Bob

Python Python 游戏编程 4月日更

starforce源码解读二:游戏入口

风翱

Unity 源码解读 4月日更

众盟科技:直播浪潮下,医美行业的私域营销之变

脑极体

霸榜GitHub!银四匠心之作:拼多多/蚂蚁/百度面经分享

Java 编程 程序员 架构 面试

并发的HashMap为什么会引起死循环?

Java小咖秀

容器 hashmap 并发

「编程概念」融合理解函数式和面向对象

顿晓

面向对象 4月日更 函数式 融合

Angular,AngularJS 和 react

HoneyMoose

构建基于Spring Cloud向Service Mesh框架迁移的解决方案及思路

xcbeyond

架构 云原生 Service Mesh 解决方案 引航计划

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