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

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

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

image.png

此消息让不少 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 最后写道。

目录
相关文章
|
8月前
|
SQL Oracle 关系型数据库
java往oracle存clob类型的值时,字符长度过长怎么办?
java往oracle存clob类型的值时,字符长度过长怎么办?
469 1
|
8月前
|
Oracle 关系型数据库 Java
java操作多数据源将oracle数据同步达梦数据库
java操作多数据源将oracle数据同步达梦数据库
|
8月前
|
安全 Java 测试技术
Java之戳中痛点之 synchronized 深度解析
Java之戳中痛点之 synchronized 深度解析
27 1
|
Oracle Java 关系型数据库
JSP struts2工资管理系统myeclipse开发oracle数据库bs框架java编程网结构
JSP 工资管理系统是一套完善的struts2设计系统MVC结构,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Oracle10g,使用java语言开发,系统主要采用B/S模式开发。
83 1
|
Oracle Java 关系型数据库
JSP停车场车位管理系统myeclipse开发oracle数据库BS模式java编程网
JSP 停车场车位管理系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助servlet+bean+dao (mvc模式开发),系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Oracle 10g,使用java语言开发系统主要采用B/S模式开发。
64 0
|
并行计算 算法 安全
Java的虚拟线程到底是什么?解决了什么痛点?
Java的虚拟线程到底是什么?解决了什么痛点?
1368 1
|
Oracle 关系型数据库 Java
java处理oracle的Clob字段类型的坑和2种解决办法
java处理oracle的Clob字段类型的坑和2种解决办法
|
SQL Oracle 关系型数据库
java实现oracle和mysql的group by分组功能|同时具备max()/min()/sum()/case when 函数等功能
java实现oracle和mysql的group by分组功能|同时具备max()/min()/sum()/case when 函数等功能
|
8天前
|
Java
Java—多线程实现生产消费者
本文介绍了多线程实现生产消费者模式的三个版本。Version1包含四个类:`Producer`(生产者)、`Consumer`(消费者)、`Resource`(公共资源)和`TestMain`(测试类)。通过`synchronized`和`wait/notify`机制控制线程同步,但存在多个生产者或消费者时可能出现多次生产和消费的问题。 Version2将`if`改为`while`,解决了多次生产和消费的问题,但仍可能因`notify()`随机唤醒线程而导致死锁。因此,引入了`notifyAll()`来唤醒所有等待线程,但这会带来性能问题。
Java—多线程实现生产消费者
|
10天前
|
安全 Java Kotlin
Java多线程——synchronized、volatile 保障可见性
Java多线程中,`synchronized` 和 `volatile` 关键字用于保障可见性。`synchronized` 保证原子性、可见性和有序性,通过锁机制确保线程安全;`volatile` 仅保证可见性和有序性,不保证原子性。代码示例展示了如何使用 `synchronized` 和 `volatile` 解决主线程无法感知子线程修改共享变量的问题。总结:`volatile` 确保不同线程对共享变量操作的可见性,使一个线程修改后,其他线程能立即看到最新值。

推荐镜像

更多