Using CDS and AOT with the Eclipse IDE
Daniel Schmid
daniel at wwwmaster.at
Sat Jul 19 12:22:18 UTC 2025
I forgot to mention that you can add -nosplash to the CLI and it won't
show the splashscreen. You can also use -application <app> to run a
specific application (and not show the Eclipse GUI at all, e.g. run EJC
from the CLI) but I don't that makes much sense in the context of my
experiments (I am interest in "normal" Eclipse startup time and not
startup of other applications that are part of the Eclipse IDE).
Greetings,
Daniel
On 19/07/2025 11:13, Daniel Schmid wrote:
>
> Hi Calvin,
>
> Thanks for the hint. Without --add-modules=ALL-SYSTEM, I am indeed
> getting rid of the error and there seems to be an improvement of AOT
> over CDS (though I don't have a proper test setup so all my results
> are very noisy).
>
> I wasn't using the "Launch" button in the Eclipse Window, I just ran
> the Eclipse binary from bash. I think if you are on Windows, you might
> need to run eclipsec.exe instead of eclipse.exe (or appand -console or
> something like that). Also, I didn't add these custom arguments to the
> eclipse.ini file but directly to the command line.
> Also on Windows, I think it might make a difference whether you are
> using java.exe, javaw.exe and jvm.dll in the -vm option.
>
> Yours,
> Daniel
>
> On 19/07/2025 03:38, Calvin Cheung wrote:
>>
>> Hi Daniel,
>>
>> Thanks for your experiments with CDS and AOT.
>>
>> From your AOT_logs_26ea.txt:
>>
>>> WARNING: Using incubator modules: jdk.incubator.vector
>>> [0.055s][info][aot] Not starting management agent during creation of
>>> AOT cache.
>>> Reading AOTConfiguration app.aotconf and writing AOTCache app.aot
>>> [0.057s][error][aot] An error has occurred while processing the AOT
>>> configuration file. Run with -Xlog:aot for details.
>>> [0.057s][error][aot] archivedBootLayer not available, disabling full
>>> module graph
>>
>> The jdk.incubator.vector incubator module is included. We currently
>> don't archive the boot layer if an incubator module is included in
>> the module configuration. The incubator is added because the
>> eclipse.ini file contains:
>>
>> --add-modules=ALL-SYSTEM
>>
>> I tried removing the above line from eclipse.ini and I don't see the
>> above error anymore.
>>
>> Can you give it a try?
>>
>> I also tried your method of measuring the eclipse startup time by
>> checking the line starting with "Application started in:" at the
>> terminal. I noticed the line won't show up until I click on the
>> "Launch" button on the eclipse window. Are you able to start eclipse
>> without any splash screen and GUI?
>>
>> Thanks!
>> Calvin
>>
>>
>> On 7/18/25 5:47 AM, Daniel Schmid wrote:
>>>
>>> Hi there,
>>>
>>> I made a few experiments with CDS and AOT archives on the Eclipse
>>> IDE and wanted to share my results here.
>>> I ran 4 Eclipse installations (my personal main Eclipse installation
>>> is in a comment further down) with AppCDS and -XX:AOTCache and I
>>> have written down my results here:
>>> https://github.com/eclipse-platform/eclipse.platform/discussions/2060
>>>
>>> I think the Eclipse IDE is an interesting application to test as it
>>> is a fairly big codebase with many classes loaded at runtime (so it
>>> doesn't make it easy for Leyden's improvements) via OSGi.
>>>
>>> I have used the latest EA build of JDK 26 (26-ea+6-582). Should I
>>> use a different JDK build to test it?
>>>
>>> Essentially my findings (which are relevant to this mailing list)
>>> are the following:
>>> - There has been an error when creating the AOT archive but it was
>>> still created and it was usable. I want to make sure that the people
>>> here are aware of that error. To be honest, I did not
>>> expect -XX:AOTCache to work that well with Eclipse.
>>> - While CDS seems to come with a noticeable improvement for Eclipse
>>> startup time, -XX:AOTCache seems to have similar startup times as
>>> CDS (not faster). This might be because of Eclipse's class loading
>>> shenanigans.
>>> - It worked with an agent attached (The Lombok tooling for Eclipse
>>> attaches an agent into the IDE, I think that's necessary to inject
>>> itself into the Eclipse Java Compiler).
>>>
>>>
>>> The error I got:
>>>
>>> |[0.074s][error][aot] An error has occurred while processing the AOT
>>> configuration file. Run with -Xlog:aot for details.
>>> [0.074s][error][aot] archivedBootLayer not available, disabling full
>>> module graph AOTCache creation is complete: app.aot 106397696 bytes |
>>>
>>> I provided the logs here:
>>> https://github.com/user-attachments/files/21313886/AOT_logs_26ea.txt
>>> (technically not the same run but it also has that error).
>>>
>>>
>>> Yours,
>>> Daniel Schmid
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/leyden-dev/attachments/20250719/65c4f43e/attachment.htm>
More information about the leyden-dev
mailing list