CDS has been a commercial feature with Oracle JVM since Java 8. CDS helps in two ways—it helps to reduce the startup time of a Java application and reduces its memory footprint with multiple Java Virtual Machines (JVMs).
When you start up your JVM, it performs multiple steps to prepare the environment for execution. This includes bytecode loading, verification, linking, and initializing of core classes and interfaces. The classes and interfaces are combined into the runtime state of JVM so that they can be executed. It also includes method areas and constant pools.
These sets of core classes and interfaces don't change unless you update your JVM. So, every time you start your JVM, it performs the same steps to get the environment up for execution. Imagine you could dump the result to a file, which could be read by your JVM at startup. The subsequent startups...