Class data sharing in the HotSpot VM
Class Data Sharing (CDS) is a feature introduced in Java 5 to improve startup performance and reduce the memory footprint of Java by storing the preprocessed class metadata of system classes on disk and sharing it between virtual machines. During the last years, CDS has been constantly improved. In OpenJDK 10, CDS will be extended by AppCDS which additionally allows sharing of application classes between VM instances (see JEP 310: "Application Class-Data Sharing").
In this talk, Volker will briefly introduce CDS and AppCDS and demonstrate how it can be used. While CDS is well documented, the usage of AppCDS with application classes and custom class loaders still requires a lot of handcrafting, so Volker will introduce a small tool which helps automating these tasks. After presenting some memory consumption and performance numbers, Volker will do a short deep-dive into the implementation details and describe some of the challenges. Finally, he will briefly show how Strings and Symbols can be stored in the CDS archive and shared across VM as well since OpenJDK 9.
After the talk, the audience should have a better understand of CDS/AppCDS and be able to decide whether it makes sense to use it for their own applications.