

Project Leyden: Beginnings
source link: https://openjdk.java.net/projects/leyden/notes/01-beginnings
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Project Leyden
Project Leyden: Beginnings
The ultimate goal of this Project, as stated in the Call for Discussion, is to address the long-term pain points of Java’s slow startup time, slow time to peak performance, and large footprint.
In the Call for Discussion I proposed that we address these pain points by introducing a concept of static run-time images to the Java Platform, and to the JDK.
-
A static image is a standalone program, derived from an application and a JDK, which runs that application — and no other.
-
A static image is a closed world with respect to the classes that it can load: At run time it cannot load classes from outside the image, nor can it create classes dynamically.
The closed-world constraint imposes strict limits on Java’s natural dynamism, particularly on the run-time reflection and class-loading features upon which so many existing Java libraries and frameworks depend. Not all applications are well suited to this constraint, and not all developers are willing to live with it.
So rather than adopt the closed-world constraint at the start, I propose that we instead pursue a gradual, incremental approach.
We will explore a spectrum of constraints, weaker than the closed-world constraint, and discover what optimizations they enable. The resulting optimizations will almost certainly be weaker than those enabled by the closed-world constraint. Because the constraints are weaker, however, the optimizations will likely be applicable to a broader range of existing code — thus they will be more useful to more developers.
We will work incrementally along this spectrum of constraints, starting small and simple so that we can develop a firm understanding of the changes required to the Java Platform Specification. Along the way we will strive, of course, to preserve Java’s core values of readability, compatibility, and generality.
We will lean heavily on existing components of the JDK including the HotSpot JVM, the C2 compiler, application class-data sharing (CDS), and the jlink
linking tool.
In the long run we will likely embrace the full closed-world constraint in order to produce fully-static images. Between now and then, however, we will develop and deliver incremental improvements which developers can use sooner rather than later.
Let us begin!
Recommend
-
26
Mostly we code...sometimes we write. Every once in a while, we podcast. ...
-
61
除非特别声明,此文章内容采用知识共享署名 3.0许可,代码示例采用Apache 2.0许可。更多细节请查看我们的服务条款。
-
34
Call for Discussion Call for Discussion: New Project: Leyden mark.reinhold at oracle.com
-
18
Java Language Architect Mark Reinhold proposed the creation of a new OpenJDK project Leyden : static application binaries with faster s...
-
15
Personal Becoming a Technical Fellow at Headspring, and New Beginnings ...
-
5
Oracle 启动 Leyden 计划,下决心解决 Java 启动慢等长期痛点 2
-
7
Java的新提案:Project Leyden 解道Jdon ...
-
8
How contributing GraalVM to OpenJDK changes the rules for Project Leyden - JVM Weekly #19Instead of the standard division, I decided to prepare one coherent article, in which I will try to guide you through everything that is happen...
-
9
Java的Leyden项目引入Condenser Java为了提高启动时间性能,在Leyden项目中引入Condenser冷凝器。Condenser冷凝器专注于最...
-
7
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK