Quarkus: Pag-modernize ng mga Application Gamit ang Helloworld bilang Halimbawa mula sa JBoss EAP Quickstart (ipinagpapatuloy)

Kumusta sa lahat - ito ang ikalimang post sa aming serye ng Quarkus! (Siya nga pala, panoorin ang aming webinar β€œIto ang Quarkus – Kubernetes native Java framework”. Ipapakita namin sa iyo kung paano magsimula sa simula o maglipat ng mga handa na solusyon)

Quarkus: Pag-modernize ng mga Application Gamit ang Helloworld bilang Halimbawa mula sa JBoss EAP Quickstart (ipinagpapatuloy)

Π’ Nakaraang post tiningnan namin ang paggawa ng makabago ng mga aplikasyon ng Java gamit ang mga teknolohiyang suportado ng Quarkus (CDI at Servlet 3) gamit ang programang helloworld mula sa repositoryo bilang isang halimbawa Quickstart ng Red Hat JBoss Enterprise Application Platform (JBoss EAP).. Ngayon ay ipagpapatuloy natin ang paksa ng modernisasyon at tatalakayin ang isyu ng pagkonsumo ng memorya.

Ang pagsukat ng pagganap ay ang pangunahing batayan ng halos anumang pag-upgrade, at ang pag-uulat sa paggamit ng memory ay isang mahalagang bahagi ng proseso ng pagsusuri sa pagganap. Ngayon ay titingnan natin ang mga nauugnay na tool sa pagsukat na maaaring magamit upang mabilang ang mga pagpapahusay na nakamit sa pamamagitan ng paggawa ng makabago ng mga aplikasyon ng Java.

Para sa higit pang impormasyon sa pagsukat ng paggamit ng memorya, tingnan ang tutorial na Quarkus na pinamagatang Pagsukat ng Pagganapβ€”Paano natin sinusukat ang paggamit ng memorya?

Sa ibaba ay ipapakita lang namin sa iyo kung paano ihambing ang data ng paggamit ng memory para sa tatlong magkakaibang uri ng mga application (JBoss EAP, JAR package, at executable) sa pamamagitan ng pagkolekta ng data sa Linux gamit ang pmap at ps utilities.

JBoss EAP

Naglulunsad kami ng isang instance ng JBoss EAP application (tingnan ang seksyong "Pag-deploy ng helloworld" sa Nakaraang post) at pagkatapos ay hanapin ang prosesong PID nito (sa aming halimbawa ito ay 7268) gamit ang sumusunod na utos:

$ pgrep -lf jboss
7268 java

Tandaan. Binibigyang-daan ka ng –a na opsyon na kunin ang kumpletong command line (ibig sabihin: $ pgrep -af jboss).

Ngayon ay gumagamit kami ng PID 7268 sa mga utos ng ps at pmap.

Narito kaya:

$ 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

At tulad nito:

$ 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

Tinitingnan namin ang halaga ng RSS at nakikita na ang JBoss EAP ay gumagamit ng humigit-kumulang 650 MB ng memorya.

pakete ng JAR

Inilunsad namin ang JAR application (tingnan ang seksyong "Patakbuhin ang helloworld na naka-package sa JAR" sa Nakaraang post):

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

Muli naming tinitingnan ang PID gamit ang pgrep command (sa oras na ito ginagamit namin ang -a na opsyon na inilarawan sa itaas):

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

Nagpapatakbo kami ng ps at pmap upang sukatin ang paggamit ng memorya, ngunit ngayon para sa prosesong 6408.

Narito kaya:

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

At tulad nito:

$ 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

Muli naming tinitingnan ang RSS at nakita na ang JAR package ay kumokonsumo ng humigit-kumulang 130 MB.

Maipapatupad na file

Inilunsad namin ang native (tingnan ang seksyong "Pagpapatakbo ng native na helloworld executable file" sa Nakaraang post):

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

Tingnan natin muli ang PID nito:

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

At pagkatapos ay ginagamit namin ang resultang proseso ID (6948) sa ps at pmap command.

Narito kaya:

$ 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

Tinitingnan namin ang RSS at nakita na ang executable file ay tumatagal ng humigit-kumulang 20 MB ng memorya.

Paghahambing ng pagkonsumo ng memorya

Kaya, nakuha namin ang mga sumusunod na numero para sa paggamit ng memorya:

  • JBoss EAP - 650 MB.
  • JAR package – 130 MB.
  • Maipapatupad na file - 20 MB.

Malinaw, ang executable file ay tumatagal ng mas kaunting memorya.

Ibuod natin ang mga post 4 at 5

Dito at sa mga nakaraang post, tiningnan namin ang paggawa ng makabago ng mga aplikasyon ng Java gamit ang mga teknolohiyang sinusuportahan sa Quarkus (CDI at Servlet 3), pati na rin ang iba't ibang paraan upang bumuo, bumuo at magpatakbo ng mga naturang application. Ipinakita namin kung paano mangolekta ng data ng paggamit ng memorya upang suriin ang mga pagpapahusay na nakamit ng naturang pag-upgrade. Tinutulungan ka ng mga artikulong ito na maunawaan kung paano gumagana ang Quarkus at kung bakit ito kapaki-pakinabangβ€”kung pinag-uusapan mo ang simpleng programa ng helloworld sa aming mga halimbawa o mas kumplikadong mga real-life application.

Babalik kami sa loob ng dalawang linggo na may huling post tungkol sa Quarkus - magkita-kita tayo doon!

Sa aming huling post, ipapakita namin kung paano pagsamahin ang AMQ Online at Quarkus upang makabuo ng modernong OpenShift-based na sistema ng pagmemensahe gamit ang dalawang bagong teknolohiya sa pagmemensahe. Magbasa pa link.

Pinagmulan: www.habr.com

Magdagdag ng komento