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
