Draft JEP 8315737: AOT Linked Classes
Volker Simonis
volker.simonis at gmail.com
Wed Jul 10 13:41:00 UTC 2024
Hi Ioi,
Thanks for the clarification. I wasn't aware of the fact, that only
static CDS archives can contain archived heap objects. The official
CDS documentation [1] is also not mentioning this. In contrary, it
states that:
> The names "static" and "dynamic" are used for historical reasons. The only significance is that the "static" archive is loaded first and the "dynamic" archive is loaded second.
So maybe that documentation should be updated to make it clear that
static CDS archives are more powerful?
Is there a conceptual reason for why dynamic archives can not contain
heap objects or is this just an implementation issue that could be
solved? Maybe because G1 can currently only map a single heap region
from file?
Thank you and best regards,
Volker
[1] https://docs.oracle.com/en/java/javase/22/docs/specs/man/java.html#application-class-data-sharing
On Tue, Jul 9, 2024 at 7:32 AM <ioi.lam at oracle.com> wrote:
>
> On 7/8/24 6:52 AM, Volker Simonis wrote:
>
> The way you describe the manual usage of CDS is "old" and quite
> cumbersome. Why not use the new -XX:+AutoCreateSharedArchive option
> which automatically creates the archive if non is available. Or does
> -XX:+AOTLoadedClasses not work together with
> -XX:+AutoCreateSharedArchive and if so, why not?
>
> -XX:+AutoCreateSharedArchive is for creating dynamic CDS archives only. It cannot be used for creating static CDS archives.
>
> -XX:+AOTLoadedClasses works for both dynamic and static CDS archives. However, as part of this JEP, to demonstrate its promises, we will also implement one significant optimization that relies on -XX:+AOTLoadedClasses:
>
> JDK-8293336 Store LambdaForms in CDS archive heap
>
> JDK-8293336 works only for the static CDS archive (it requires archiving Java heap objects, which is not supported by dynamic CDS archives).
>
> Thanks
>
> - Ioi
More information about the leyden-dev
mailing list