Quarkus: Модернизатсияи барномаҳо бо истифода аз Helloworld ҳамчун намуна аз JBoss EAP Quickstart (идома дорад)

Салом ба ҳама - ин паёми панҷум дар силсилаи Quarkus мост! (Дар омади гап, вебинари моро тамошо кунед "Ин чаҳорчӯбаи аслии Java Quarkus - Kubernetes аст". Мо ба шумо нишон медиҳем, ки чӣ гуна аз сифр оғоз кардан ё интиқол додани қарорҳои тайёр)

Quarkus: Модернизатсияи барномаҳо бо истифода аз Helloworld ҳамчун намуна аз JBoss EAP Quickstart (идома дорад)

В пости қаблӣ мо ба модернизатсияи замимаҳои Java бо истифода аз технологияҳои аз ҷониби Quarkus дастгирӣшаванда (CDI ва Servlet 3) бо истифода аз барномаи helloworld аз анбор ҳамчун намуна дида баромадем. Red Hat Platform Application Enterprise JBoss (JBoss EAP) Quickstart. Имруз мо мавзуи навсозиро давом дода, масъалаи истеъмоли хотираро мухокима мекунем.

Андозагирии самаранокӣ асоси асосии қариб ҳама гуна навсозӣ мебошад ва гузоришдиҳии истифодаи хотира як қисми муҳими раванди таҳлили фаъолият мебошад. Имрӯз мо асбобҳои мувофиқи андозагириро дида мебароем, ки онҳоро метавон барои муайян кардани беҳбудиҳое, ки тавассути модернизатсияи барномаҳои Java ба даст оварда шудааст, истифода барем.

Барои маълумоти бештар дар бораи ченкунии истифодаи хотира, ба дастури Quarkus нигаред Андозагирии самаранокӣ - Мо истифодаи хотираро чӣ гуна чен мекунем?

Дар зер мо ба шумо танҳо нишон медиҳем, ки чӣ тавр муқоиса кардани маълумоти истифодаи хотираро барои се намуди гуногуни барномаҳо (JBoss EAP, бастаи JAR ва иҷрошаванда) тавассути ҷамъоварии маълумот дар Linux бо истифода аз pmap ва ps utilities.

JBoss EAP

Мо як намунаи барномаи JBoss EAP -ро оғоз мекунем (ниг. ба бахши "Тасдиқи helloworld" дар пости қаблӣ) ва сипас бо истифода аз фармони зерин PID раванди онро ҷустуҷӯ кунед (дар мисоли мо он 7268 аст:

$ pgrep -lf jboss
7268 java

Эзоҳ: Опсияи –a ба шумо имкон медиҳад, ки сатри пурраи фармонро хориҷ кунед (яъне: $ pgrep -af jboss).

Ҳоло мо PID 7268-ро дар фармонҳои ps ва pmap истифода мебарем.

Ин аст:

$ 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

Ва монанди ин:

$ 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

Мо ба арзиши RSS назар мекунем ва мебинем, ки JBoss EAP тақрибан 650 МБ хотираро истеъмол мекунад.

бастаи JAR

Мо замимаи JAR-ро оғоз мекунем (нигаред ба бахши "Иҷроиши helloworld дар JAR басташуда" дар пости қаблӣ):

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

Мо бо истифода аз фармони pgrep дубора ба PID назар мекунем (ин дафъа мо опсияи -a-ро дар боло тавсиф мекунем):

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

Мо барои чен кардани истифодаи хотира ps ва pmap -ро иҷро мекунем, аммо ҳоло барои раванди 6408.

Ин аст:

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

Ва монанди ин:

$ 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

Мо бори дигар ба RSS назар мекунем ва мебинем, ки бастаи JAR тақрибан 130 МБ истеъмол мекунад.

Файли иҷрошаванда

Мо нусхаи аслиро оғоз мекунем (нигаред ба бахши "Иҷроиши файли иҷрошавандаи helloworld маҳаллӣ" дар пости қаблӣ):

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

Биёед бори дигар ба PID-и он назар андозем:

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

Ва он гоҳ мо ID-и раванди натиҷаро (6948) дар фармонҳои ps ва pmap истифода мебарем.

Ин аст:

$ 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

Мо ба RSS назар мекунем ва мебинем, ки файли иҷрошаванда тақрибан 20 МБ хотираро мегирад.

Муқоисаи истеъмоли хотира

Ҳамин тавр, мо рақамҳои зеринро барои истифодаи хотира гирифтем:

  • JBoss EAP - 650 МБ.
  • Бастаи JAR - 130 MB.
  • Файли иҷрошаванда - 20 MB.

Аён аст, ки файли иҷрошаванда хотираи камтарро мегирад.

Биёед мақолаҳои 4 ва 5-ро ҷамъбаст кунем

Дар ин ва мақолаҳои қаблӣ мо модернизатсияи замимаҳои Java-ро бо истифода аз технологияҳои дар Quarkus дастгирӣшаванда (CDI ва Servlet 3), инчунин роҳҳои гуногуни таҳия, сохтан ва иҷро кардани чунин барномаҳо дида баромадем. Мо нишон додем, ки чӣ тавр ҷамъ овардани маълумоти истифодаи хотираро барои арзёбии беҳбудиҳо тавассути чунин навсозӣ ба даст овардаем. Ин мақолаҳо ба шумо кӯмак мекунанд, ки Quarkus чӣ гуна кор мекунад ва чаро он муфид аст - хоҳ шумо дар бораи барномаи оддии helloworld дар мисолҳои мо гап мезанед ё барномаҳои мураккабтари ҳаёти воқеӣ.

Мо пас аз ду ҳафта бо як паёми ниҳоӣ дар бораи Кваркус бармегардем - дар он ҷо вомехӯрем!

Дар паёми ниҳоии худ, мо нишон медиҳем, ки чӣ тавр якҷоя кардани AMQ Online ва Quarkus барои сохтани як системаи муосири паёмнависии бар OpenShift бо истифода аз ду технологияи нави паёмнависӣ. Бихонед пайванд.

Манбаъ: will.com

Илова Эзоҳ