Hello kila mtu - hii ni chapisho la tano katika mfululizo wetu wa Quarkus! (Kwa njia, angalia wavuti yetu
Π
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
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
$ 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
$ 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
$ ./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
Chanzo: mapenzi.com