Bonjou tout moun - sa a se senkyèm pòs nan seri Quarkus nou an! (Bon wout la, gade webinar nou an
В
Mezi pèfòmans se baz fondamantal prèske nenpòt amelyorasyon, ak rapò sou itilizasyon memwa se yon pati enpòtan nan pwosesis analiz pèfòmans. Jodi a nou pral gade nan zouti mezi ki enpòtan yo ka itilize pou quantifier amelyorasyon yo reyalize nan modènize aplikasyon Java yo.
Pou plis enfòmasyon sou mezi itilizasyon memwa, gade leson patikilye Quarkus ki gen tit
Anba a nou pral tou senpleman montre w kouman pou konpare done itilizasyon memwa pou twa diferan kalite aplikasyon (JBoss EAP, pake JAR, ak ègzèkutabl) lè w kolekte done yo sou Linux lè l sèvi avèk sèvis piblik pmap ak ps.
JBoss EAP
Nou lanse yon egzanp aplikasyon JBoss EAP (gade seksyon "Deplwaye helloworld" nan
$ pgrep -lf jboss
7268 java
Note. Opsyon –a a pèmèt ou ekstrè liy lòd konplè a (sa vle di: $ pgrep -af jboss).
Koulye a, nou itilize PID 7268 nan kòmandman ps ak pmap yo.
Isit la konsa:
$ 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
Epi tankou sa a:
$ 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
Nou gade valè RSS a epi nou wè ke JBoss EAP konsome apeprè 650 MB memwa.
Pake JAR
Nou lanse aplikasyon JAR (gade seksyon "Kouri helloworld pake nan JAR" nan
$ java -jar ./target/helloworld-<version>-runner.jar
Yon fwa ankò nou gade nan PID la lè l sèvi avèk lòd pgrep la (fwa sa a nou itilize opsyon -a ki dekri pi wo a):
$ pgrep -af helloworld
6408 java -jar ./target/helloworld-<version>-runner.jar
Nou kouri ps ak pmap pou mezire itilizasyon memwa, men kounye a pou pwosesis 6408.
Isit la konsa:
$ ps -o pid,rss,command -p 6408
PID RSS COMMAND
6408 125732 java -jar ./target/helloworld-quarkus-runner.jar
Epi tankou sa a:
$ 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
Nou gade nan RSS a ankò epi wè ke pake JAR la konsome apeprè 130 MB.
Fichye ègzekutabl
Nou lanse yon sèl natif natal la (gade seksyon an "Kouri dosye natif natal helloworld ègzekutabl la" nan
$ ./target/helloworld-<version>-runner
Ann gade nan PID li ankò:
$ pgrep -af helloworld
6948 ./target/helloworld-<version>-runner
Apre sa, nou itilize ID pwosesis ki kapab lakòz (6948) nan kòmandman ps ak pmap.
Isit la konsa:
$ 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
Nou gade RSS a epi wè ke dosye a ègzèkutabl pran apeprè 20 MB nan memwa.
Konpare konsomasyon memwa
Se konsa, nou jwenn nimewo sa yo pou itilizasyon memwa:
- JBoss EAP - 650 MB.
- Pake JAR - 130 MB.
- Fichye ègzekutabl - 20 MB.
Li evidan, dosye a ègzèkutabl pran anpil mwens memwa.
Ann rezime pòs 4 ak 5
Nan pòs sa a ak pòs anvan yo, nou te gade modènizasyon aplikasyon Java lè l sèvi avèk teknoloji ki sipòte nan Quarkus (CDI ak Servlet 3), ansanm ak divès fason yo devlope, bati ak kouri aplikasyon sa yo. Nou te montre ki jan yo kolekte done itilizasyon memwa pou evalye amelyorasyon yo reyalize pa yon amelyorasyon konsa. Atik sa yo ede w konprann ki jan Quarkus travay ak poukisa li itil—si w ap pale de senp pwogram helloworld nan egzanp nou yo oswa aplikasyon ki pi konplèks nan lavi reyèl.
Nou pral tounen nan de semèn ak yon pòs final sou Quarkus - na wè la!
Nan pòs final nou an, nou pral montre kijan pou konbine AMQ Online ak Quarkus pou konstwi yon sistèm messagerie modèn ki baze sou OpenShift lè l sèvi avèk de nouvo teknoloji messagerie. Li kontinye
Sous: www.habr.com