Quarkus: JBoss EAP Quickstart-dan misol sifatida Hellouorld yordamida ilovalarni modernizatsiya qilish (davomi)

Hammaga salom - bu bizning Quarkus seriyamizdagi beshinchi post! (Aytgancha, bizning vebinarimizni tomosha qiling "Bu Quarkus - Kubernetes mahalliy Java ramkasi". Biz sizga noldan qanday boshlashni yoki tayyor echimlarni uzatishni ko'rsatamiz)

Quarkus: JBoss EAP Quickstart-dan misol sifatida Hellouorld yordamida ilovalarni modernizatsiya qilish (davomi)

В oldingi post Biz misol sifatida ombordagi helloworld dasturidan foydalangan holda Quarkus tomonidan qo'llab-quvvatlanadigan texnologiyalar (CDI va Servlet 3) yordamida Java ilovalarini modernizatsiya qilishni ko'rib chiqdik. Red Hat JBoss Enterprise Application Platform (JBoss EAP) Tez boshlash. Bugun biz modernizatsiya mavzusini davom ettiramiz va xotira iste'moli masalasini muhokama qilamiz.

Ishlash samaradorligini o'lchash deyarli har qanday yangilanishning asosiy asosidir va xotiradan foydalanish hisoboti ishlash tahlili jarayonining muhim qismidir. Bugun biz Java ilovalarini modernizatsiya qilish orqali erishilgan yaxshilanishlarni aniqlash uchun ishlatilishi mumkin bo'lgan tegishli o'lchov vositalarini ko'rib chiqamiz.

Xotiradan foydalanishni o'lchash bo'yicha qo'shimcha ma'lumot olish uchun Quarkus qo'llanmasiga qarang Ishlash samaradorligini o'lchash - Xotiradan foydalanishni qanday o'lchaymiz?

Quyida biz ushbu ma'lumotlarni to'plash orqali uch xil turdagi ilovalar (JBoss EAP, JAR paketi va bajariladigan fayl) uchun xotiradan foydalanish ma'lumotlarini qanday taqqoslashni ko'rsatamiz. Linux pmap va ps yordamchi dasturlaridan foydalanish.

JBoss EAP

Biz JBoss EAP ilovasining namunasini ishga tushiramiz ("Halloworldni joylashtirish" bo'limiga qarang. oldingi post) va keyin quyidagi buyruq yordamida uning jarayoni PID (bizning misolimizda u 7268) ni qidiring:

$ pgrep -lf jboss
7268 java

Eslatma. –a opsiyasi to‘liq buyruq qatorini chiqarish imkonini beradi (ya’ni: $ pgrep -af jboss).

Endi biz ps va pmap buyruqlarida PID 7268 dan foydalanamiz.

Mana bunday:

$ 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

Va shunga o'xshash:

$ 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

Biz RSS qiymatiga qaraymiz va JBoss EAP taxminan 650 MB xotirani iste'mol qilishini ko'ramiz.

JAR to'plami

Biz JAR ilovasini ishga tushiramiz ("JAR-da paketlangan helloworldni ishga tushirish" bo'limiga qarang oldingi post):

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

Biz pgrep buyrug'i yordamida yana PID-ni ko'rib chiqamiz (bu safar biz yuqorida tavsiflangan -a opsiyasidan foydalanamiz):

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

Biz xotiradan foydalanishni o'lchash uchun ps va pmap-ni ishga tushiramiz, ammo endi 6408-jarayon uchun.

Mana bunday:

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

Va shunga o'xshash:

$ 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

Biz yana RSS-ga qaraymiz va JAR to'plami taxminan 130 MB iste'mol qilishini ko'ramiz.

Bajariladigan fayl

Biz mahalliy faylni ishga tushiramiz ("Mahalliy helloworld bajariladigan faylni ishga tushirish" bo'limiga qarang. oldingi post):

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

Keling, uning PID ga yana qaraylik:

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

Va keyin biz ps va pmap buyruqlarida olingan jarayon ID (6948) dan foydalanamiz.

Mana bunday:

$ 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

Biz RSS-ga qaraymiz va bajariladigan fayl taxminan 20 MB xotirani egallashini ko'ramiz.

Xotira sarfini solishtirish

Shunday qilib, biz xotiradan foydalanish uchun quyidagi raqamlarni oldik:

  • JBoss EAP - 650 MB.
  • JAR to'plami - 130 MB.
  • Bajariladigan fayl - 20 MB.

Shubhasiz, bajariladigan fayl kamroq xotirani egallaydi.

Keling, 4 va 5-xabarlarni umumlashtiramiz

Ushbu va oldingi postlarda biz Quarkus (CDI va Servlet 3) da qo'llab-quvvatlanadigan texnologiyalardan foydalangan holda Java ilovalarini modernizatsiya qilish, shuningdek, bunday ilovalarni ishlab chiqish, yaratish va ishga tushirishning turli usullarini ko'rib chiqdik. Biz bunday yangilanish orqali erishilgan yaxshilanishlarni baholash uchun xotiradan foydalanish ma'lumotlarini qanday yig'ishni ko'rsatdik. Ushbu maqolalar sizga Quarkus qanday ishlashini va u nima uchun foydali ekanligini tushunishga yordam beradi — misollarimizdagi oddiy helloworld dasturi yoki real hayotdagi ancha murakkab ilovalar haqida gapiryapsizmi.

Ikki haftadan so‘ng Kvarkus haqidagi so‘nggi post bilan qaytamiz – ko‘rishguncha!

Yakuniy postimizda biz ikkita yangi xabar almashish texnologiyasidan foydalangan holda zamonaviy OpenShift-ga asoslangan xabar almashish tizimini yaratish uchun AMQ Online va Quarkus-ni qanday birlashtirishni ko'rsatamiz. Davom eting aloqa.

Manba: www.habr.com

DDoS himoyasi, VPS VDS serverlari bo'lgan saytlar uchun ishonchli hosting sotib oling 🔥 DDoS himoyasi, VPS VDS serverlari bilan ishonchli veb-sayt xostingini sotib oling | ProHoster