Quarkus: JBoss EAP Quickstart мысалында Hellouorld көмегімен қолданбаларды модернизациялау (жалғасы бар)

Барлығына сәлем – бұл біздің Quarkus сериясындағы бесінші пост! (Айтпақшы, вебинарымызды қараңыз «Бұл Quarkus - Kubernetes Java негізі». Біз сізге нөлден бастауды немесе дайын шешімдерді беруді көрсетеміз)

Quarkus: JBoss EAP Quickstart мысалында Hellouorld көмегімен қолданбаларды модернизациялау (жалғасы бар)

В алдыңғы пост біз мысал ретінде репозиторийдегі helloworld бағдарламасын пайдалана отырып, Quarkus қолдайтын технологияларды (CDI және Servlet 3) пайдаланып Java қолданбаларын жаңартуды қарастырдық. Red Hat JBoss Enterprise Application Platform (JBoss EAP) жылдам бастау. Бүгін біз модернизация тақырыбын жалғастырамыз және жадты тұтыну мәселесін талқылаймыз.

Өнімділікті өлшеу кез келген дерлік жаңартудың негізгі негізі болып табылады және жадты пайдалану туралы есеп өнімділікті талдау процесінің маңызды бөлігі болып табылады. Бүгін біз Java қолданбаларын модернизациялау арқылы қол жеткізілген жақсартуларды сандық бағалау үшін пайдалануға болатын тиісті өлшеу құралдарын қарастырамыз.

Жадты пайдалануды өлшеу туралы қосымша ақпарат алу үшін Quarkus оқулығын қараңыз Өнімділікті өлшеу — жадты пайдалануды қалай өлшейміз?

Төменде біз pmap және ps утилиталарын пайдаланып Linux жүйесінде деректерді жинау арқылы қолданбалардың үш түрлі түрі (JBoss EAP, JAR бумасы және орындалатын) үшін жадты пайдалану деректерін қалай салыстыруға болатынын көрсетеміз.

JBoss EAP

Біз JBoss EAP қолданбасының данасын іске қосамыз («Helloworld қолдану» бөлімін қараңыз). алдыңғы пост) және одан кейін келесі пәрменді пайдаланып оның процесінің PID (біздің мысалда ол 7268) іздеңіз:

$ pgrep -lf jboss
7268 java

Ескерту: –a опциясы толық пәрмен жолын шығаруға мүмкіндік береді (яғни: $ pgrep -af jboss).

Енді біз ps және pmap командаларында PID 7268 пайдаланамыз.

Мұнда осылай:

$ 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 қолданбасын іске қосамыз («JAR пакетінде салынған helloworld іске қосу» бөлімін қараңыз алдыңғы пост):

$ 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

Содан кейін біз ps және pmap командаларында алынған процестің идентификаторын (6948) қолданамыз.

Мұнда осылай:

$ 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 МБ.
  • Орындалатын файл – 20 МБ.

Әлбетте, орындалатын файл әлдеқайда аз жадты алады.

4 және 5 хабарламаларды қорытындылайық

Осы және алдыңғы жазбаларда біз Quarkus-та (CDI және Servlet 3) қолдау көрсетілетін технологияларды пайдалана отырып, Java қолданбаларын модернизациялауды, сондай-ақ мұндай қолданбаларды әзірлеудің, құрудың және іске қосудың әртүрлі жолдарын қарастырдық. Біз осындай жаңарту арқылы қол жеткізілген жақсартуларды бағалау үшін жадты пайдалану деректерін қалай жинау керектігін көрсеттік. Бұл мақалалар Quarkus қалай жұмыс істейтінін және оның неліктен пайдалы екенін түсінуге көмектеседі — мысалдарымыздағы қарапайым helloworld бағдарламасы немесе нақты өмірдегі әлдеқайда күрделі қолданбалар туралы айтып отырсыз ба.

Біз екі аптадан кейін Кваркус туралы соңғы постпен ораламыз - сонда кездескенше!

Соңғы жазбамызда біз екі жаңа хабар алмасу технологиясын қолдана отырып, OpenShift негізіндегі заманауи хабар алмасу жүйесін құру үшін AMQ Online және Quarkus біріктіру жолын көрсетеміз. Оқыңыз байланыс.

Ақпарат көзі: www.habr.com

пікір қалдыру