Java 10 - Teilen von Klassendaten
JEP 310 − Gemeinsame Nutzung von Anwendungsklassendaten
Wenn JVM startet, lädt es als vorbereitenden Schritt die Klassen in den Arbeitsspeicher. Falls mehrere Gläser mit mehreren Klassen vorhanden sind, wird bei der ersten Anforderung eine offensichtliche Verzögerung angezeigt. In einer serverlosen Architektur kann eine solche Verzögerung die Startzeit verzögern, was ein kritischer Vorgang in einer solchen Architektur ist. Das Konzept der gemeinsamen Nutzung von Anwendungsklassendaten trägt dazu bei, die Startzeit einer Anwendung zu verkürzen. Java verfügt über eine vorhandene CDS-Funktion (Class-Data Sharing). Mit der gemeinsamen Nutzung von Anwendungsklassendaten ermöglicht Java 10, Anwendungsklassen in einem gemeinsam genutzten Archiv abzulegen. Dies reduziert den Anwendungsstart und den Platzbedarf, indem gemeinsame Klassenmetadaten über mehrere Java-Prozesse hinweg geteilt werden.
Prozess
Die gemeinsame Nutzung von Anwendungsklassendaten ist ein dreistufiger Prozess.
-
Erstellen Sie eine Liste der zu archivierenden Kurse − Erstellen Sie mit Java Launcher eine Liste welcome.lst einer Klasse Greeting.java, die in welcome.jar liegt.
$java -Xshare:off -XX:+UseAppCDS -XX:DumpLoadedClassList=welcome.lst -cp welcome.jar Greeting
-
AppCDS-Archiv erstellen − Archivieren Sie eine Liste von Klassen, die für die gemeinsame Nutzung von Anwendungsklassendaten verwendet werden sollen.
$java -Xshare:dump -XX:+UseAppCDS -XX:SharedClassListFile=welcome.lst -XX:SharedArchiveFile=welcome.jsa -cp welcome.jar
-
AppCDS-Archiv verwenden − Verwenden Sie das AppCDS-Archiv, während Sie den Java-Launcher verwenden.
$java -Xshare:on -XX:+UseAppCDS -XX:SharedArchiveFile=welcome.jsa -cp welcome.jar Greeting
Java