Question about Project Leyden: why choose "static run-time images"?

Claes Redestad claes.redestad at oracle.com
Mon May 23 09:36:34 UTC 2022


Hi,

I think there's some confusion here since earlier communication - 
including the current leyden project page - is a bit outdated and
does not reflect recent change in direction.

To quote Mark[1]:

"So rather than adopt the closed-world constraint at the start, I
propose that we instead pursue a gradual, incremental approach.

[...]

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."

Best regards
Claes

[1] https://mail.openjdk.java.net/pipermail/leyden-dev/2022-May/000001.html

On 2022-05-23 10:49, Glavo wrote:
> Hello, everyone. I'm excited to see OpenJDK's quest to improve startup
> speed, but I have a confusion about Project Leyden.
> 
> As far as I know, there are currently two efforts in the Java community to
> improve startup speed:
> 
> * OpenJ9[1], Zing JVM[2] and Dragonwell[3] reduces JIT warm-up time by
> caching profiling data or JIT results.
>    This approach greatly improves startup speed with little sacrifice in
> functionality and flexibility.
> * GraalVM native-image introduces the concept of "closed-world assumption",
> at the expense of
>    flexibility and partial functionality, statically compiles Java code,
> reduces startup time and reduces size.
>    Relatively speaking, it is more expensive, and we need to limit ourselves
> to use it better.
> 
> When I got to know Project Leyden, it seems to me that its purpose and cost
> are very much the same as GraalVM native-image.
> So, why did Project Leyden choose this approach? Why not opt for a more
> general way like OpenJ9?
> What decisive advantage does it have over GraalVM native-image that make us
> need to start over?
> 
> Thanks
> 
> [1]: https://docs.azul.com/prime/Use-ReadyNow.html
> [2]: https://www.eclipse.org/openj9/docs/shrc/#aot-code-and-jit-data
> [3]:
> https://github.com/alibaba/dragonwell8/wiki/Alibaba-Dragonwell8-User-Guide#jwarmup


More information about the leyden-dev mailing list