Quarkus: Immodernizzar tal-applikazzjonijiet billi tuża Helloworld bħala Eżempju minn JBoss EAP Quickstart (ikompli)

Hello lil kulħadd - din hija l-ħames post fis-serje Quarkus tagħna! (Mill-mod, ara l-webinar tagħna "Dan huwa Quarkus - qafas Java nattiv ta' Kubernetes". Aħna ser nuruk kif tibda mill-bidu jew tittrasferixxi soluzzjonijiet lesti)

Quarkus: Immodernizzar tal-applikazzjonijiet billi tuża Helloworld bħala Eżempju minn JBoss EAP Quickstart (ikompli)

В post preċedenti ħares lejn l-immodernizzar tal-applikazzjonijiet Java bl-użu ta’ teknoloġiji appoġġjati minn Quarkus (CDI u Servlet 3) bl-użu tal-programm helloworld mir-repożitorju bħala eżempju Red Hat JBoss Enterprise Application Platform (JBoss EAP) Quickstart. Illum se nkomplu s-suġġett tal-modernizzazzjoni u niddiskutu l-kwistjoni tal-konsum tal-memorja.

Il-kejl tal-prestazzjoni huwa l-bażi fundamentali ta 'kważi kull aġġornament, u r-rappurtar tal-użu tal-memorja huwa parti importanti mill-proċess tal-analiżi tal-prestazzjoni. Illum ser inħarsu lejn l-għodod ta' kejl rilevanti li jistgħu jintużaw biex jikkwantifikaw it-titjib miksub mill-immodernizzar tal-applikazzjonijiet Java.

Għal aktar informazzjoni dwar il-kejl tal-użu tal-memorja, ara t-tutorja ta' Quarkus bit-titlu Il-Kejl tal-Prestazzjoni—Kif inkejlu l-użu tal-memorja?

Hawn taħt aħna sempliċiment nuruk kif tqabbel id-dejta tal-użu tal-memorja għal tliet tipi differenti ta 'applikazzjonijiet (JBoss EAP, pakkett JAR, u eżekutibbli) billi tiġbor id-dejta fuq Linux billi tuża l-utilitajiet pmap u ps.

JBoss EAP

Aħna nniedu eżempju tal-applikazzjoni JBoss EAP (ara t-taqsima “Deploying helloworld” fi post preċedenti) u mbagħad fittex il-PID tal-proċess tiegħu (fl-eżempju tagħna huwa 7268) billi tuża l-kmand li ġej:

$ pgrep -lf jboss
7268 java

Innota. L-għażla –a tippermettilek tiġbed il-linja tal-kmand kompluta (jiġifieri: $ pgrep -af jboss).

Issa nużaw PID 7268 fil-kmandi ps u pmap.

Hawn hekk:

$ 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

U bħal dan:

$ 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

Inħarsu lejn il-valur RSS u naraw li JBoss EAP jikkonsma madwar 650 MB ta 'memorja.

Pakkett JAR

Inniedu l-applikazzjoni JAR (ara s-sezzjoni “Ħexxi helloworld ippakkjat f’JAR” fi post preċedenti):

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

Aħna nħarsu lejn il-PID mill-ġdid billi nużaw il-kmand pgrep (din id-darba nużaw l-għażla -a deskritta hawn fuq):

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

Aħna nħaddmu ps u pmap biex inkejlu l-użu tal-memorja, iżda issa għall-proċess 6408.

Hawn hekk:

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

U bħal dan:

$ 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

Erġgħu nħarsu lejn l-RSS u naraw li l-pakkett JAR jikkonsma madwar 130 MB.

Fajl eżegwibbli

Aħna nniedu dak nattiv (ara t-taqsima "Tmexxi l-fajl eżekutibbli nattiv helloworld" fi post preċedenti):

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

Ejja nerġgħu nħarsu lejn il-PID tiegħu:

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

U mbagħad nużaw l-ID tal-proċess li jirriżulta (6948) fil-kmandi ps u pmap.

Hawn hekk:

$ 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

Inħarsu lejn l-RSS u naraw li l-fajl eżekutibbli jieħu madwar 20 MB ta 'memorja.

Tqabbil tal-konsum tal-memorja

Allura, ksibna n-numri li ġejjin għall-użu tal-memorja:

  • JBoss EAP - 650 MB.
  • Pakkett JAR – 130 MB.
  • Fajl eżegwibbli – 20 MB.

Ovvjament, il-fajl eżekutibbli jieħu ħafna inqas memorja.

Ejja nġabru fil-qosor il-postijiet 4 u 5

F'din il-kariga u f'dawk ta' qabel, ħares lejn l-immodernizzar tal-applikazzjonijiet Java bl-użu ta' teknoloġiji appoġġjati f'Quarkus (CDI u Servlet 3), kif ukoll diversi modi kif tiżviluppa, tibni u tħaddem applikazzjonijiet bħal dawn. Aħna wrejna kif niġbru d-dejta dwar l-użu tal-memorja biex nevalwaw it-titjib miksub b’tali aġġornament. Dawn l-artikoli jgħinuk tifhem kif jaħdem Quarkus u għaliex huwa utli—kemm jekk qed titkellem dwar il-programm sempliċi helloworld fl-eżempji tagħna jew applikazzjonijiet tal-ħajja reali ħafna aktar kumplessi.

Se nerġgħu fi żmien ġimagħtejn b'post finali dwar Quarkus - narawkom hemm!

Fl-aħħar post tagħna, aħna ser nuru kif nikkombinaw AMQ Online u Quarkus biex nibnu sistema moderna ta' messaġġi bbażata fuq OpenShift billi tuża żewġ teknoloġiji ġodda ta' messaġġi. Kompli aqra rabta.

Sors: www.habr.com

Żid kumment