阿里、微众、PingCAP专家分享如何解决可观测性带来的埋点成本上升、观测数据割裂等挑战。戳 了解详情
写点什么

Oracle 启动 Leyden 计划,下决心解决 Java 启动慢等长期痛点

  • 2022 年 5 月 21 日
  • 本文字数:885 字

    阅读完需:约 3 分钟

Oracle 启动 Leyden 计划,下决心解决 Java 启动慢等长期痛点

当地时间 5 月 20 日,Oracle Java 平台组首席架构师 Mark Reinhold 在其 Twitter 宣布正式启动莱顿计划(Project Leyden),该计划的最终目标是解决 Java 启动时间慢,达到峰值性能的时间慢以及占用空间大等长期痛点。


此消息让不少 Java 用户感到振奋。


好消息,终于来了!我们快开始吧!—— Roman Kennke @rkennke

我希望 CRaC 将成为 Leyden 的一部分。它看起来很有希望。—— Marc Savy @marcsavy

我猜 Quarkus 应用程序会从中受益。—— Vano Beridze @vanuatoo


据悉,2 年多前,Mark Reinhold 曾公开征集开发者对莱顿计划的想法(详见:Call for Discussion: New Project: Leyden),他建议通过向 Java 平台和 JDK 引入静态运行时映像的概念来解决以上痛点。


  • 静态映像是一个独立的程序,从一个应用程序和一个运行该应用程序的 JDK 派生出来的 ,而不是其他的。

  • 静态映像相对于它可以加载的类来说是一个封闭的世界:在运行时,它不能从映像外部加载类,也不能动态创建类。

 

封闭世界约束对 Java 的自然活力施加了严格的限制,尤其是对许多现有 Java 库和框架所依赖的运行时反射和类加载功能。并非所有应用程序都非常适合此约束,也不是所有开发人员都愿意接受它。

 

因此,与其在一开始就采用封闭世界的约束,Mark Reinhold 建议采取一种循序渐进的方法——探索一系列比封闭世界的约束更弱一些的约束,找出它们能够实现哪些优化。几乎可以肯定的是,由此产生的优化会比封闭世界约束所实现的优化弱。但是,正因为约束较弱,这些优化才有可能适用于更广泛的现有代码,那么,它们也将对更多开发人员更有用。

 

Mark Reinhold 表示,他们将沿着这些约束范围逐步工作,从小而简单的开始,以便能够深入了解 Java 平台规范所需的更改。当然,在此过程中,他们将努力保持 Java 的可读性、兼容性和通用性的核心价值。

 

他们将大量依赖 JDK 的现有组件,包括 HotSpot JVM、C2 编译器、应用程序类数据共享 (CDS) 和 jlink 连接工具。

 

“从长远来看,我们可能会接受完全封闭世界的约束,以产生完全静态的图像。但是,从现在到那时,我们将开发和提供渐进式改进,开发人员可以尽早使用。”Mark Reinhold 最后写道。

 

2022 年 5 月 21 日 02:283704

评论

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

NCF框架如何实现WebApi(四)

MartyZane

实战 签约计划第二季 NCF DDD框架 WebApi

Python Qt GUI设计:QScrollBar类实现窗口水平或垂直滑动条效果(拓展篇—4)

不脱发的程序猿

Python qt GUI设计 Qt Company 滑动条效果

8千长文解决前端资源下载全场景问题

梁龙先森

签约计划第二季

读《思辨与立场》-01定义

wood

28天写作 批判性思维 思辨与立场

使用golang开发数据库周边工具

lixiaofeng

签约计划第二季

趣谈 iOS Universal Link

37手游iOS技术运营团队

ios universal link

端口是什么东西?为什么老是被黑客利用

喀拉峻

黑客 网络安全 安全

从WAVE SUMMIT+2021,寻找新一代AI人不可或缺的“凝视”

脑极体

MySQL Xenon源码阅读-01

lixiaofeng

MySQL MySQL 高可用 签约计划第二季

“元宇宙”,让人在数据空间“复活”

xcbeyond

28天写作 云宇宙 12月日更

前端架构师破局技能,Node.js 落地 WebSocket 实践

杨成功

架构 前端 架构师 nodejs websocket 签约计划第二季

2021年最委屈的一件事

将军-技术演讲力教练

Go+ 上下文处理教程(5.3)

liuzhen007

28天写作 12月日更

Python Qt GUI设计:QMdiArea和QMdiSubWindow类实现多文档界面(拓展篇—3)

不脱发的程序猿

Python qt GUI设计 Qt Company 多文档界面

Prometheus Exporter (二十五)HAProxy Exporter

耳东@Erdong

Prometheus 28天写作 exporter 12月日更 HAProxy

[Pulsar] Broker处理消息确认

Zike Yang

Apache Pulsar 12月日更

线程方法:sleep( )、wait()、join( )、yield( )的区别

JavaEdge

Spring AOP(三) Advisor类架构

程序员历小冰

28天写作 spring aop 12月日更

C#中的结构与类

喵叔

28天写作 12月日更

《PyTorch 深度学习实战》复习7

IT蜗壳-Tango

28天写作 12月日更

golang 脚本实时监控错误日志

lixiaofeng

mongodb MySQL 运维 签约计划第二季

关于分布式事务的思考

yuexin_tech

用 Go + Redis 实现分布式锁

万俊峰Kevin

微服务 高并发 分布式锁 go-zero Go 语言

MySQL MGR + 只读节点高可用

lixiaofeng

MySQL 高可用 签约计划第二季

每个前端都值得拥有自己的组件库,就像每个冬天都拥有春秋裤⛄️

速冻鱼

前端 组件库 签约计划第二季 12月日更

NCF 如何对接三方的功能(五)

MartyZane

支付 短信 签约计划第二季 NCF DDD框架

尝试

Nydia

MongoDB自动化运维

lixiaofeng

mongodb 签约计划第二季

LeetCode刷题开源手册

入门小站

Leet Code

数据大体系(四)——标签

圣迪

大数据 标签 标签体系 数据体系

【docker 总结】第一篇 - docker 简介和安装

Brave

Docker 12月日更

Techo Day 腾讯技术开放日「轻量级云开发与云应用」

Techo Day 腾讯技术开放日「轻量级云开发与云应用」

Oracle 启动 Leyden 计划,下决心解决 Java 启动慢等长期痛点_语言 & 开发_邓艳琴_InfoQ精选文章