PĂ«rshĂ«ndetje tĂ« gjithĂ«ve â ky Ă«shtĂ« postimi i pestĂ« nĂ« serinĂ« tonĂ« mbi Quarkus! (PĂ«r mĂ« tepĂ«r, shikoni seminarin tonĂ« nĂ« internet . Do tĂ« tregojmĂ« se si tĂ« filloni «nga zero» ose tĂ« trasferoni zgjidhjet e gatshme)

Në ne shqyrtuam modernizimin e aplikacioneve Java duke përdorur teknologjitë e suportuara nga Quarkus (CDI dhe Servlet 3) përmes programit helloworld nga repozitori . Sot do të vazhdojmë temën e modernizimit dhe do të diskutojmë çështjen e konsumit të memories.
Matja e performancës është një themel i rëndësishëm për pothuajse çdo modernizim, dhe raportet mbi përdorimin e memories janë një pjesë e rëndësishme e procesit të analizës së performancës. Sot do të shqyrtojmë mjetet përkatëse të matjes, me ndihmën e të cilave mund të vlerësojmë sasiisht përmirësimet e arritura si rezultat i modernizimit të aplikacioneve Java.
Detaje mbi matjen e përdorimit të memories mund të gjenden në udhëzimin Quarkus të titulluar
Më poshtë do të tregojmë thjesht se si të krahasojmë të dhënat mbi përdorimin e memories nga tri lloje të ndryshme aplikacionesh (JBoss EAP, paketë JAR dhe skedari ekzekutiv), duke mbledhur këto të dhëna në Linux me ndihmën e utilitarëve pmap dhe ps.
JBoss EAP
Dëshirojmë një shembull të aplikacionit JBoss EAP (shihni seksionin "Zhvillimi i helloworld" në ) dhe më pas shikoni identifikatorin e tij të procesit PID (në shembullin tonë, ky është 7268) me ndihmën e komandës së mëposhtme:
$ pgrep -lf jboss
7268 java
ShĂ«nim. Opsioni âa lejon nxjerrjen e komandĂ«s sĂ« plotĂ« (dmth: $ pgrep -af jboss).
Tani përdorim PID 7268 në komandat ps dhe pmap.
Ja si:
$ 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
Dhe ja si:
$ 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
Shikojmë vlerën RSS dhe shohim se JBoss EAP konsumon rreth 650 MB memorie.
Pako JAR
Nisim aplikacionin JAR (shihni seksionin "Nisim helloworld, e paketuar në JAR" në ):
$ java -jar ./target/helloworld-<version>-runner.jar
Përsëri shikojmë PID duke përdorur komandën pgrep (këtë herë përdorim opsionin e përshkruar më lart -a):
$ pgrep -af helloworld
6408 java -jar ./target/helloworld-<version>-runner.jar
Nisim ps dhe pmap për të matur përdorimin e memories, por tani për procesin 6408.
Ja si:
$ ps -o pid,rss,command -p 6408
PID RSS COMMAND
6408 125732 java -jar ./target/helloworld-quarkus-runner.jar
Dhe ja si:
$ 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
Përsëri shikojmë RSS dhe shohim se pako JAR konsumon rreth 130 MB.
Skedari ekzekutues
Nisim natyroren (shihni seksionin "Nisim skedarin ekzekutues helloworld" në ):
$ ./target/helloworld-<version>-runner
Përsëri shikojmë PID-në e tij:
$ pgrep -af helloworld
6948 ./target/helloworld-<version>-runner
Dhe më pas përdorim identifikatorin e marrë të procesit (6948) në komandat ps dhe pmap.
Ja si:
$ ps -o pid,rss,command -p 6948
PID RSS COMMAND
6948 19084 ./target/helloworld-quarkus-runner
Dhe kështu:
$ 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
Shikojmë RSS dhe shohim se skedari ekzekutues merr rreth 20 MB memorie.
Krahasojmë konsumimin e memories
Pra, kemi marrë këto shifra për përdorimin e memories:
- JBoss EAP â 650 MB.
- Pako JAR â 130 MB.
- Skedari ekzekutues â 20 MB.
Qartë, skedari ekzekutues merr shumë më pak memorie.
Bëjmë përmbledhjen e postimeve 4 dhe 5
NĂ« kĂ«tĂ« postim dhe postimet e kaluara, kemi shqyrtuar çështjen e modernizimit tĂ« aplikacioneve Java duke pĂ«rdorur teknologjitĂ« e mbĂ«shtetura nĂ« Quarkus (CDI dhe Servlet 3), si dhe mĂ«nyrat e ndryshme tĂ« zhvillimit, ndĂ«rtimit dhe ekzekutimit tĂ« kĂ«tyre aplikacioneve. Kemi treguar se si tĂ« realizoni mbledhjen e tĂ« dhĂ«nave mbi pĂ«rdorimin e memories pĂ«r tĂ« vlerĂ«suar pĂ«rmirĂ«simet e arritura si rezultat i kĂ«tij modernizimi. KĂ«to artikuj ndihmojnĂ« nĂ« kuptimin e mĂ«nyrĂ«s se si funksionon Quarkus dhe cilat janĂ« pĂ«rfitimet e tij â pavarĂ«sisht nĂ«se flasim pĂ«r programin mĂ« tĂ« thjeshtĂ« helloworld nga shembujt tanĂ« apo pĂ«r aplikacione shumĂ« mĂ« komplekse nga jeta reale.
Do tĂ« kthehemi pas dy javĂ«sh me postimin pĂ«rfundimtar mbi Quarkus â mirĂ« se tĂ« shohim!
Në postimin tonë përfundimtar, do të tregojmë se si të kombinojmë AMQ Online me Quarkus për të ndërtuar një sistem modern të komunikimit mbi baza OpenShift duke përdorur dy teknologji të reja që lidhen me përpunimin e mesazheve. Lexoni më .
Burimi: habr.com
