If archived object relocation is required at runtime, we can map the archived string objects in the open archive heap region. Since writes happen to all archived java objects during relocation, memory sharing is lost. Keeping the mapped string objects in closed archive heap region has no memory saving benefit. If we map the archived strings and other archived java objects using the same runtime GC region, we can increase the region utilization ratio and reduce java heap space waste.
With the default CDS archive, the combined size of the closed archive region and the open archived region can (usually) fit into a single G1 HeapRegion. If we have to patch the closed region anyway, it make sense to allocate both of them into the same HeapRegion.
With the default CDS archive, the combined size of the closed archive region and the open archived region can (usually) fit into a single G1 HeapRegion. If we have to patch the closed region anyway, it make sense to allocate both of them into the same HeapRegion.