Java CDS improvements would help boost start-up times

Java CDS improvements would help boost start-up times

Also improves peak performance and program footprints.

Credit: Dreamstime

Efforts to improve Java program start-up times and performance are set to include improving support for archived Java heap objects in CDS (class data sharing).

The plan, made public by Ioi Lam of Oracle in an OpenJDK community RFC last month, aligns with Project Leyden, an effort to improve start-up times for Java applications as well as times to peak performance and program footprints. Lam noted that Project Leyden is likely to make extensive use of archived Java heap objects.

Goals of the CDS improvement plan include uniform support of CDS for all collectors and minimising the code needed for each collector to support CDS.

CDS itself is intended to reduce application start-up times, in particular for smaller applications. CDS is supported only with the Java HotSpot client VM and only with the serial garbage collector.

The CDS improvement plan calls for:

  • Removing the G1 garbage collector dependency for writing the archive heap; a working prototype already has been developed.
  • Consolidating the archive heap into a contiguous block. The intent is to make it easy to mmap (memory map) the archive heap into different collectors. Removal of G1 archive region types also is planned as part of this step.
  • Implementation of mmap of the archive region for other collectors. The implementation is expected to be fairly simple.

As of Java Development Kit (JDK) 20, which is due as a production release in March, implementers of the plan must deal with limitations including CDS archive dumping only being supported by the G1 collector, G1 having a special allocation routine for space in the heap, and mmap supported only in G1.

Providing the impetus for the CDS proposal was a Java development plan to have uniform APIs for using archived regions. That proposal was launched this past November.

Tags javaOpenJDK


Brand Post

Show Comments