Quarkus: Kuboresha Maombi kwa Kutumia Helloworld kama Mfano kutoka kwa JBoss EAP Quickstart (inaendelea)

Hello kila mtu - hii ni chapisho la tano katika mfululizo wetu wa Quarkus! (Kwa njia, angalia wavuti yetu "Hii ni Quarkus - Mfumo wa Java asilia wa Kubernetes". Tutakuonyesha jinsi ya kuanza kutoka mwanzo au kuhamisha suluhu zilizotengenezwa tayari)

Quarkus: Kuboresha Maombi kwa Kutumia Helloworld kama Mfano kutoka kwa JBoss EAP Quickstart (inaendelea)

Π’ chapisho lililopita tuliangalia kusasisha programu za Java kwa kutumia teknolojia zinazoungwa mkono na Quarkus (CDI na Servlet 3) kwa kutumia programu ya helloworld kutoka kwa hazina kama mfano. Red Hat JBoss Enterprise Application Platform (JBoss EAP) Quickstart. Leo tutaendelea mada ya kisasa na kujadili suala la matumizi ya kumbukumbu.

Kipimo cha utendakazi ndio msingi wa kimsingi wa karibu uboreshaji wowote, na kuripoti utumiaji wa kumbukumbu ni sehemu muhimu ya mchakato wa kuchanganua utendakazi. Leo tutaangalia zana zinazofaa za vipimo ambazo zinaweza kutumika kuhesabu maboresho yaliyopatikana kwa kufanya programu za Java kuwa za kisasa.

Kwa maelezo zaidi juu ya kupima matumizi ya kumbukumbu, angalia mafunzo ya Quarkus yenye kichwa Utendaji wa Kupima-Je, tunapimaje matumizi ya kumbukumbu?

Hapo chini tutakuonyesha jinsi ya kulinganisha data ya matumizi ya kumbukumbu kwa aina tatu tofauti za programu (JBoss EAP, kifurushi cha JAR, na inayoweza kutekelezeka) kwa kukusanya data kwenye Linux kwa kutumia pmap na ps huduma.

JBoss EAP

Tunazindua mfano wa programu ya JBoss EAP (tazama sehemu ya "Deploying helloworld" ndani chapisho lililopita) kisha utafute mchakato wake wa PID (kwa mfano wetu ni 7268) kwa kutumia amri ifuatayo:

$ pgrep -lf jboss
7268 java

Kumbuka. Chaguo la -a hukuruhusu kutoa laini kamili ya amri (yaani: $ pgrep -af jboss).

Sasa tunatumia PID 7268 katika amri za ps na pmap.

Kama hii:

$ 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

Na kama hii:

$ 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

Tunaangalia thamani ya RSS na kuona kwamba JBoss EAP hutumia takriban MB 650 za kumbukumbu.

Mfuko wa JAR

Tunazindua programu ya JAR (tazama sehemu ya "Endesha helloworld iliyowekwa kwenye JAR" ndani chapisho lililopita):

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

Tena tunaangalia PID kwa kutumia pgrep amri (wakati huu tunatumia -a chaguo lililoelezwa hapo juu):

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

Tunaendesha ps na pmap ili kupima matumizi ya kumbukumbu, lakini sasa kwa mchakato 6408.

Kama hii:

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

Na kama hii:

$ 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

Tunaangalia RSS tena na kuona kwamba kifurushi cha JAR kinatumia takriban 130 MB.

Faili inayoweza kutekelezwa

Tunazindua ile ya asili (tazama sehemu ya "Kuendesha faili ya asili inayoweza kutekelezwa ya helloworld" ndani chapisho lililopita):

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

Wacha tuangalie PID yake tena:

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

Na kisha tunatumia kitambulisho cha mchakato unaosababisha (6948) katika amri za ps na pmap.

Kama hii:

$ 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

Tunaangalia RSS na kuona kwamba faili inayoweza kutekelezwa inachukua takriban 20 MB ya kumbukumbu.

Kulinganisha matumizi ya kumbukumbu

Kwa hivyo, tulipata nambari zifuatazo za utumiaji wa kumbukumbu:

  • JBoss EAP - 650 MB.
  • Mfuko wa JAR - 130 MB.
  • Faili inayoweza kutekelezwa - 20 MB.

Ni wazi, faili inayoweza kutekelezwa inachukua kumbukumbu ndogo zaidi.

Wacha tufanye muhtasari wa machapisho ya 4 na 5

Katika machapisho haya na yaliyotangulia, tuliangalia kuboresha programu za Java kwa kutumia teknolojia zinazotumika katika Quarkus (CDI na Servlet 3), pamoja na njia mbalimbali za kuendeleza, kujenga na kuendesha programu hizo. Tulionyesha jinsi ya kukusanya data ya matumizi ya kumbukumbu ili kutathmini maboresho yaliyopatikana kwa uboreshaji kama huo. Makala haya yanakusaidia kuelewa jinsi Quarkus inavyofanya kazi na kwa nini ni muhimuβ€”iwe unazungumzia mpango rahisi wa helloworld katika mifano yetu au matumizi changamano zaidi ya maisha halisi.

Tutarejea baada ya wiki mbili na chapisho la mwisho kuhusu Quarkus - tuonane hapo!

Katika chapisho letu la mwisho, tutaonyesha jinsi ya kuchanganya AMQ Online na Quarkus ili kuunda mfumo wa kisasa wa utumaji ujumbe unaotegemea OpenShift kwa kutumia teknolojia mbili mpya za utumaji ujumbe. Endelea kusoma kiungo.

Chanzo: mapenzi.com

Kuongeza maoni