On Tue, 28 Oct 2025 08:03:34 GMT, Erik Österlund <[email protected]> wrote:

>> src/hotspot/share/cds/cds_globals.hpp line 83:
>> 
>>> 81:                                                                         
>>>     \
>>> 82:   product(bool, AOTEagerlyLoadObjects, false, DIAGNOSTIC,               
>>>     \
>>> 83:           "Load streamable objects synchronously without concurrency")  
>>>     \
>> 
>> Can you explain how you use `AOTEagerlyLoadObjects`? Can it be set to 
>> `false` when archive has streamable objects?
>> 
>> Can we use only one flag `AOTStreamableObjects` for both assembly and 
>> production phases?
>
> Both flags are diagnostic flags as I don't think ordinary users have any 
> business fiddling with them. The AOTStreamableObjects flag controls whether 
> dumping will dump the GC agnostic streaming format or not. Not setting it 
> implies we will use streaming when compressed oops is off.
> 
> As for AOTEagerlyLoadObjects, enabling it when loading a streamable object 
> archive means all objects will be materialized upfront, instead of using 
> concurrent materialization. This is enabled automatically if the environment 
> has one core or less available. At that point, concurrency won't help much, 
> and just getting it over with is a good idea.
> 
> But yeah, as a user, you shouldn't really have to fiddle with these at all. 
> They are there for benchmarking the differences.

Got it. Thanks you.
An other question: does it mean that if streamable objects are in AOT cache we 
can't use mmap for them?
So everything is defined during assembly phase which approach is used: 
streaming or mmap. Right?

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/27732#discussion_r2470366749

Reply via email to