Moien alleguer - dëst ass de fënnefte Post an eiser Quarkus Serie! (Kuckt iwwregens eise Webinar
В
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
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
$ 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
$ 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
$ ./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
Source: will.com