Startzeiten mit jpackage

mihe7

Top Contributor
Gerade habe ich etwas mit jlink/jpackage rumgespielt und dabei ist mir etwas aufgefallen: die Startzeit der von jpackage erzeugten App-Images.

Fangen wir mal von vorne an: System ist ein Ubuntu 20.04.4 auf einem Uralt-Rechner (ja, der mit der Kurbel), Java:
Code:
java --version
openjdk 17.0.2 2022-01-18 LTS
OpenJDK Runtime Environment (build 17.0.2+9-LTS)
OpenJDK 64-Bit Server VM (build 17.0.2+9-LTS, mixed mode, sharing)

Normaler Start:
Code:
time java -cp target/fraction.jar fraction.App

real    0m0,168s
user    0m0,137s
sys    0m0,050s
Die Werte schwanken natürlich immer ein klein wenig, mal sind es 0,200s, mal nur 0,150s.

Als modulare Anwendung:
Code:
time java -p target/fraction.jar -m fraction/fraction.App

real    0m0,652s
user    0m0,416s
sys    0m0,088s
Hier ist die Schwankungsbreite wesentlich größer: 0,3 bis 0,8s. Wenn ich per jlink ein Runtime mit CDS erstelle, sieht das ähnlich aus.
Code:
jlink --output runtime -p target/fraction.jar --add-modules fraction --no-header-files --no-man-pages --compress=0 --strip-debug
runtime/bin/java -Xshare:dump

Ist ja das schon grenzwertig. Den Vogel aber schießt jpackage ab:
Code:
jpackage --name fraction -m fraction/fraction.App --runtime-image runtime --type app-image --java-options "-Xshare:on"

time bin/fraction 

real    0m1,363s
user    0m0,731s
sys    0m0,421s

Lass ich jpackage machen, was es will:
Code:
jpackage --name fraction -p target/fraction.jar -m fraction/fraction.App -t app-image
kann man da nochmal eine halbe Sekunde drauflegen.

Äh, 0,168s vs. 1,832s (ich hab auch schon über 2s gesehen)... Was soll das?
 

Neue Themen


Oben