Using CDS and AOT with the Eclipse IDE

Calvin Cheung calvin.cheung at oracle.com
Tue Jul 22 00:26:47 UTC 2025


Thanks for the -nosplash hint. Regarding the "Launch" button, that is 
from the "Select a directory as workspace" dialog box. After selecting 
the "do not ask again" checkbox, the dialog didn't popup again.

On linux-x64 without the --add-module=ALL-SYSTEM, I saw an improvement 
of AOT over CDS by approx. 13%.

Thanks!
Calvin


On 7/19/25 5:22 AM, Daniel Schmid wrote:
>
> 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/20250721/cd5836a6/attachment.htm>


More information about the leyden-dev mailing list