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 最后写道。

目录
相关文章
|
6月前
|
SQL Oracle 关系型数据库
java往oracle存clob类型的值时,字符长度过长怎么办?
java往oracle存clob类型的值时,字符长度过长怎么办?
324 1
|
6月前
|
Oracle 关系型数据库 Java
java操作多数据源将oracle数据同步达梦数据库
java操作多数据源将oracle数据同步达梦数据库
|
6月前
|
安全 Java 测试技术
Java之戳中痛点之 synchronized 深度解析
Java之戳中痛点之 synchronized 深度解析
24 1
|
Oracle Java 关系型数据库
JSP struts2工资管理系统myeclipse开发oracle数据库bs框架java编程网结构
JSP 工资管理系统是一套完善的struts2设计系统MVC结构,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Oracle10g,使用java语言开发,系统主要采用B/S模式开发。
67 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模式开发。
59 0
|
并行计算 算法 安全
Java的虚拟线程到底是什么?解决了什么痛点?
Java的虚拟线程到底是什么?解决了什么痛点?
1280 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 函数等功能
|
4天前
|
监控 安全 Java
在 Java 中使用线程池监控以及动态调整线程池时需要注意什么?
【10月更文挑战第22天】在进行线程池的监控和动态调整时,要综合考虑多方面的因素,谨慎操作,以确保线程池能够高效、稳定地运行,满足业务的需求。
71 38
|
1天前
|
安全 Java
java 中 i++ 到底是否线程安全?
本文通过实例探讨了 `i++` 在多线程环境下的线程安全性问题。首先,使用 100 个线程分别执行 10000 次 `i++` 操作,发现最终结果小于预期的 1000000,证明 `i++` 是线程不安全的。接着,介绍了两种解决方法:使用 `synchronized` 关键字加锁和使用 `AtomicInteger` 类。其中,`AtomicInteger` 通过 `CAS` 操作实现了高效的线程安全。最后,通过分析字节码和源码,解释了 `i++` 为何线程不安全以及 `AtomicInteger` 如何保证线程安全。
java 中 i++ 到底是否线程安全?

推荐镜像

更多