写点什么

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

评论

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

Electron登录注册桌面应用源码+安装文件的打包方法

北桥苏

JavaScript Electron electron实战

如何在uni-app中使用fingerprint2实现游客设备标识

北桥苏

JavaScript 前端 uniapp fingerprint

企业移动数字化平台如何赋能企业管理升级?

BeeWorks

PHP如何通过rabbitMQ死信队列实现业务的延时/定时操作

北桥苏

php RabbitMQ

PoseiSwap:合规、隐私与支持更广泛的资产

西柚子

还在为项目初始化、依赖管理问题困扰?Dubbo Initializer 来了!

阿里巴巴云原生

阿里云 云原生 dubbo

如何实现文件共享,文件共享的设置方法

镭速

为什么企业选择局域网即时通讯软件?局域网即时通讯软件哪家好?

BeeWorks

TiDB x CAPCOM | 为在线游戏提供灵活、可靠、可扩展的数据库服务

PingCAP

代码实现RabbitMQ死信队列的创建

北桥苏

php RabbitMQ 消息队列 死信队列

mac屏幕分辨率调整用什么软件好呢?

真大的脸盆

Mac Mac 软件 屏幕分辨率调整

MySQL如何做如等级/成色等特殊顺序的排序

北桥苏

MySQL sql 排序算法

最高5W奖金!百度“墨客”挑战邀请赛再启

百度安全

搜索接口优化方案——幂集分词表

北桥苏

php elasticsearch thinkphp 搜索引擎;

没关系,前端还死不了

引迈信息

Vue 前端 低代码 JNPF

永远不该忘记!科技才是硬道理,手中没有剑,跟有剑不用,是两回事

加入高科技仿生人

人工智能 ChatGPT 文心一言 通义千问 科学技术

Mac打不开后缀名为txt文件,显示文本编码中文不适用

互联网搬砖工作者

关于在 MySQL 排序中使用索引这件事!

江南一点雨

MySQL 数据库

inBuilder低代码平台开发者分享课丨变量命名要义

inBuilder低代码平台

开发者 低代码 变量

构建动态财务模型,打造商业化的全面预算管理模式

智达方通

业务场景 全面预算管理 财务模型

宝塔中极速安装的PHP如何使用AMQP连接RabbitMQ

北桥苏

RabbitMQ AMQP php-amqplib

网络中的数据传输模式有哪些-镭速

镭速

Cloud Kernel SIG月度动态:发布ANCK 5.10、4.19新版本,ABS新增仓库构建功能

OpenAnolis小助手

开源 CVE anck 龙蜥sig Cloud Kernel

以PHP门面模式实现简单的邮件发送

北桥苏

php 设计模式 门面模式

全国标杆!3DCAT实时云渲染助力深圳移动5G+智慧校园建设

3DCAT实时渲染

虚拟现实 虚拟仿真 实时渲染云

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