Quarkus: Moderniséierung vun Uwendungen mat Helloworld als Beispill vum JBoss EAP Quickstart (weider)

Moien alleguer - dëst ass de fënnefte Post an eiser Quarkus Serie! (Kuckt iwwregens eise Webinar "Dëst ass Quarkus - Kubernetes gebierteg Java Kader". Mir weisen Iech wéi Dir vun Null unzefänken oder fäerdeg Léisungen transferéiert)

Quarkus: Moderniséierung vun Uwendungen mat Helloworld als Beispill vum JBoss EAP Quickstart (weider)

В virdrun Post Mir hunn d'Moderniséierung vun Java Uwendungen gekuckt mat Quarkus-ënnerstëtzten Technologien (CDI a Servlet 3) mam Helloworld Programm aus dem Repository als Beispill Red Hat JBoss Enterprise Application Platform (JBoss EAP) Quickstart. Haut wäerte mir d'Thema vun der Moderniséierung weiderféieren an d'Fro vum Erënnerungsverbrauch diskutéieren.

Leeschtungsmessung ass d'fundamental Basis vu bal all Upgrade, an Erënnerungsverbrauchsberichterstattung ass e wichtege Bestanddeel vum Leeschtungsanalyseprozess. Haut kucke mir déi relevant Messinstrumenter déi kënne benotzt ginn fir d'Verbesserungen ze quantifizéieren déi duerch d'Moderniséierung vun Java Uwendungen erreecht ginn.

Fir méi Informatioun iwwer d'Messung vum Gedächtnisverbrauch, kuckt de Quarkus Tutorial mam Titel Leeschtung moossen - Wéi moosse mir d'Erënnerungsverbrauch?

Hei ënnen wäerte mir Iech einfach weisen wéi Dir Erënnerungsverbrauchsdaten fir dräi verschidden Aarte vun Uwendungen vergläicht (JBoss EAP, JAR Package, an ausführbar) andeems Dir d'Daten op Linux sammelt mat de pmap a ps Utilities.

JBoss EAP

Mir starten eng Instanz vun der JBoss EAP Applikatioun (kuckt d'Sektioun "Deploying helloworld" an virdrun Post) a kuckt dann säi Prozess PID op (an eisem Beispill ass et 7268) mam folgenden Kommando:

$ pgrep -lf jboss
7268 java

Note: D'Optioun –a erlaabt Iech déi komplett Kommandozeil ze extrahieren (dh: $ pgrep -af jboss).

Elo benotze mir PID 7268 an de ps an pmap Kommandoen.

Hei ass esou:

$ ps -o pid,rss,command -p 7268
PID RSS COMMAND 
7268 665348 java -D[Standalone] -server -verbose:gc -Xloggc:/home/mrizzi/Tools/jboss-eap-7.2.0/jboss-eap-7.2/standalone/log/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=3M -XX:-TraceClassUnloading -Xms1303m -Xmx1303m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferI

An esou:

$ pmap -x 7268
7268:   java -D[Standalone] -server -verbose:gc -Xloggc:/home/mrizzi/Tools/jboss-eap-7.2.0/jboss-eap-7.2/standalone/log/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=3M -XX:-TraceClassUnloading -Xms1303m -Xmx1303m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -Dorg.jboss.boot.log.file=/home/mrizzi/Tools/jboss-eap-7.2.0/jboss-eap-7.2/standa
Address           Kbytes     RSS   Dirty Mode  Mapping
00000000ae800000 1348608  435704  435704 rw---   [ anon ]
0000000100d00000 1035264       0       0 -----   [ anon ]
000055e4d2c2f000       4       4       0 r---- java
000055e4d2c30000       4       4       0 r-x-- java
000055e4d2c31000       4       0       0 r---- java
000055e4d2c32000       4       4       4 r---- java
000055e4d2c33000       4       4       4 rw--- java
[...]
ffffffffff600000       4       0       0 r-x--   [ anon ]
---------------- ------- ------- -------
total kB         3263224  672772  643024

Mir kucken de RSS Wäert a gesinn datt JBoss EAP ongeféier 650 MB Erënnerung verbraucht.

JAR Package

Mir starten d'JAR Applikatioun (kuckt d'Sektioun "Run helloworld am JAR verpackt" an virdrun Post):

$ java -jar ./target/helloworld-<version>-runner.jar

Mir kucken nach eng Kéier d'PID mam pgrep Kommando (dës Kéier benotze mir d'-a Optioun uewen beschriwwen):

$ pgrep -af helloworld
6408 java -jar ./target/helloworld-<version>-runner.jar

Mir lafen ps an pmap fir Erënnerungsverbrauch ze moossen, awer elo fir Prozess 6408.

Hei ass esou:

$ ps -o pid,rss,command -p 6408
  PID   RSS COMMAND
 6408 125732 java -jar ./target/helloworld-quarkus-runner.jar

An esou:

$ pmap -x 6408
6408:   java -jar ./target/helloworld-quarkus-runner.jar
Address           Kbytes     RSS   Dirty Mode  Mapping
00000005d3200000  337408       0       0 rw---   [ anon ]
00000005e7b80000 5046272       0       0 -----   [ anon ]
000000071bb80000  168448   57576   57576 rw---   [ anon ]
0000000726000000 2523136       0       0 -----   [ anon ]
00000007c0000000    2176    2088    2088 rw---   [ anon ]
00000007c0220000 1046400       0       0 -----   [ anon ]
00005645b85d6000       4       4       0 r---- java
00005645b85d7000       4       4       0 r-x-- java
00005645b85d8000       4       0       0 r---- java
00005645b85d9000       4       4       4 r---- java
00005645b85da000       4       4       4 rw--- java
[...]
ffffffffff600000       4       0       0 r-x--   [ anon ]
---------------- ------- ------- -------
total kB         12421844  133784  115692

Mir kucken d'RSS nach eng Kéier a gesinn datt de JAR Package ongeféier 130 MB verbraucht.

Ausféierbar Datei

Mir starten déi gebierteg (kuckt d'Sektioun "D'native Helloworld ausführbar Datei lafen" an virdrun Post):

$ ./target/helloworld-<version>-runner

Loosst eis seng PID nach eng Kéier kucken:

$ pgrep -af helloworld
6948 ./target/helloworld-<version>-runner

An da benotze mir déi resultéierend Prozess ID (6948) an de ps an pmap Kommandoen.

Hei ass esou:

$ ps -o pid,rss,command -p 6948
  PID   RSS COMMAND
 6948 19084 ./target/helloworld-quarkus-runner
И вот так:
$ pmap -x 6948
6948:   ./target/helloworld-quarkus-runner
Address           Kbytes     RSS   Dirty Mode  Mapping
0000000000400000      12      12       0 r---- helloworld-quarkus-runner
0000000000403000   10736    8368       0 r-x-- helloworld-quarkus-runner
0000000000e7f000    7812    6144       0 r---- helloworld-quarkus-runner
0000000001620000    2024    1448     308 rw--- helloworld-quarkus-runner
000000000181a000       4       4       4 r---- helloworld-quarkus-runner
000000000181b000      16      16      12 rw--- helloworld-quarkus-runner
0000000001e10000    1740     156     156 rw---   [ anon ]
[...]
ffffffffff600000       4       0       0 r-x--   [ anon ]
---------------- ------- ------- -------
total kB         1456800   20592    2684

Mir kucken op d'RSS a gesinn datt déi ausführbar Datei ongeféier 20 MB Erënnerung ophëlt.

Vergläicht Erënnerung Konsum

Also hu mir déi folgend Zuelen fir d'Erënnerungsverbrauch:

  • JBoss EAP - 650 MB.
  • JAR Package - 130 MB.
  • Ausféierbar Datei - 20 MB.

Natierlech hëlt déi ausführbar Datei vill manner Erënnerung.

Loosst eis d'Posts 4 a 5 resuméieren

An dësem an de fréiere Posts hu mir d'Moderniséierung vun Java Uwendungen gekuckt mat Technologien déi am Quarkus ënnerstëtzt ginn (CDI a Servlet 3), wéi och verschidde Weeër fir esou Uwendungen z'entwéckelen, ze bauen an ze lafen. Mir hu gewisen wéi mir Erënnerungsverbrauchsdaten sammelen fir d'Verbesserungen ze evaluéieren déi duerch sou en Upgrade erreecht ginn. Dës Artikelen hëllefen Iech ze verstoen wéi Quarkus funktionnéiert a firwat et nëtzlech ass - egal ob Dir iwwer den einfachen Helloworld Programm an eise Beispiller schwätzt oder vill méi komplex real-Liewen Uwendungen.

Mir kommen an zwou Wochen zréck mat engem leschte Post iwwer Quarkus - bis do!

An eisem leschte Post wäerte mir weisen wéi AMQ Online a Quarkus kombinéiere fir e modernen OpenShift-baséiert Messagerie System mat zwee neie Messagerie Technologien ze bauen. Weiderliesen Link.

Source: will.com

Setzt e Commentaire