Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Java

Java 10: Application Class-Data Sharing (AppCDS, JEP 310) – Schnellerer App-Start

Problem: Langsamer JVM-Start

Beim Start lädt die JVM tausende Klassen – bei Microservices/Serverless-Funktionen (Cold Start) ein messbarer Overhead. Class-Data Sharing (CDS) existiert seit Java 5, aber nur für Bootstrap-Klassen (rt.jar / JDK-Module).

JEP 310: Application Class-Data Sharing

Java 10 erweitert CDS auf Anwendungs-Klassen. Ein Shared Archive (.jsa) enthält Metadaten geladener Klassen und kann von mehreren JVM-Prozessen gemappt werden → reduzierte Startzeit & Memory Footprint.

3-Schritt-Prozess

1. Klassenliste erstellen (DumpLoadedClassList)

java -Xshare:off -XX:+UseAppCDS \
     -XX:DumpLoadedClassList=meineapp.lst \
     -cp meineapp.jar com.example.Main

Erzeugt meineapp.lst mit allen geladenen Klassen.

2. Shared Archive erzeugen (Xshare:dump)

java -Xshare:dump -XX:+UseAppCDS \
     -XX:SharedClassListFile=meineapp.lst \
     -XX:SharedArchiveFile=meineapp.jsa \
     -cp meineapp.jar

Erzeugt meineapp.jsa (Memory-mapped Archive).

3. Archive nutzen (Xshare:on)

java -Xshare:on -XX:+UseAppCDS \
     -XX:SharedArchiveFile=meineapp.jsa \
     -cp meineapp.jar com.example.Main

Voraussetzungen & Hinweise

Nutzen

Java

  1. Java Operatoren meistern: Typen, Syntax und praktische Beispiele
  2. Java Kommentare: Typen, Verwendung und Best Practices
  3. Java Enhanced For-Schleife meistern: Syntax, Beispiele und Best Practices
  4. Java Strings meistern: Erstellung, Methoden und Best Practices
  5. Java-Schnittstellen meistern: Konzepte, Implementierung und Best Practices
  6. Java anonyme innere Klassen meistern: Definition, Syntax und praktische Beispiele
  7. Java Try-With-Resources meistern: Automatisches Ressourcenmanagement erklärt
  8. Java Annotations erklärt: Typen, Platzierung und praktische Beispiele
  9. Java Assertions: Praktischer Leitfaden zur Fehlererkennung und Code-Reliabilität
  10. Java Vector verstehen: Verwendung, Funktionen und Vergleich mit ArrayList