Java 10 — совместное использование данных классов
JEP 310 — совместное использование данных класса приложений
При запуске JVM загружает классы в память в качестве предварительного шага. В случае, если есть несколько банок с несколькими классами, для первого запроса появляется явная задержка. В бессерверной архитектуре такая задержка может задержать время загрузки, что является критической операцией в такой архитектуре. Концепция совместного использования данных класса приложения помогает сократить время запуска приложения. Java имеет существующую функцию CDS (обмен классами данных). Благодаря совместному использованию данных классов приложений Java 10 позволяет помещать классы приложений в общий архив. Это сокращает время запуска и занимаемую площадь приложения за счет совместного использования метаданных общего класса несколькими процессами Java.
Процесс
Совместное использование данных класса приложений — это трехэтапный процесс.
-
Создать список классов для архивации − Создайте список welcome.lst класса Greeting.java, лежащего в файле welcome.jar, с помощью Java Launcher.
$java -Xshare:off -XX:+UseAppCDS -XX:DumpLoadedClassList=welcome.lst -cp welcome.jar Greeting
-
Создать архив AppCDS − Заархивируйте список классов, которые будут использоваться для совместного использования данных класса приложения.
$java -Xshare:dump -XX:+UseAppCDS -XX:SharedClassListFile=welcome.lst -XX:SharedArchiveFile=welcome.jsa -cp welcome.jar
-
Использовать архив AppCDS − Использовать архив AppCDS при использовании java-лаунчера.
$java -Xshare:on -XX:+UseAppCDS -XX:SharedArchiveFile=welcome.jsa -cp welcome.jar Greeting
java