Tere kĂ”igile - siin on meie viies postitus Quarkuse sarjast! (Muide, vaadake meie veebiseminar) . NĂ€itame, kuidas alustada ânullistâ vĂ”i migreerida valmis lahendusi)

V oleme arutanud Java-rakenduste moderniseerimist Quarkuse toetatud tehnoloogiate (CDI ja Servlet 3) abil helloworld programmi nĂ€itel, mis on saadaval repositooriumis . TĂ€na jĂ€tkame moderniseerimise teemat ja arutame mĂ€lu tarbimise kĂŒsimust.
Suuruse mÔÔtmine on peamine osa peaaegu igast moderniseerimisprotsessist ja mĂ€lukasutuse aruanded on selle tĂ”hususe analĂŒĂŒsi oluline osa. TĂ€na vaatame vastavaid mÔÔtmisvahendeid, millega saate kvantitatiivselt hinnata Java-rakenduste moderniseerimise tulemusel saadud tĂ€iustusi.
MÀlukasutuse mÔÔtmise kohta leiate lisainfot Quarkuse juhendist
Ja allpool nĂ€itame lihtsalt, kuidas vĂ”rrelda mĂ€lukasutuse andmeid kolme erineva rakendustĂŒĂŒbiga (JBoss EAP, JAR-pakett ja kĂ€ivitatav fail), kogudes neid Linuxis pmap ja ps utiliitide abil.
JBoss EAP
KÀivitame JBoss EAP rakenduse eksemplari (vt jaotist «Helloworldi juurutamine» ) ja seejÀrel vaatame selle protsessi identifikaatorit PID (meie nÀites on see 7268) jÀrgmise kÀsu abil:
$ pgrep -lf jboss
7268 java
MĂ€rkus. Valik âa vĂ”imaldab vĂ€lja tuua tĂ€iendava kĂ€suviiba (st: $ pgrep -af jboss).
NĂŒĂŒd kasutame PID 7268 kĂ€skudes ps ja pmap.
Nii:
$ 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
Ja just niimoodi:
$ 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
Vaatame RSS vÀÀrtust ja nÀeme, et JBoss EAP kasutab umbes 650 MB mÀlu.
JAR-pakett
KĂ€ivitame JAR-rakenduse (vt jaotist âKĂ€ivitame helloworld, mis on pakitud JAR-iâ) ):
$ java -jar ./target/helloworld-<version>-runner.jar
Vaata jÀlle PID-i kasutades kÀsku pgrep (seekord kasutame eelnevalt kirjeldatud valikuid -a):
$ pgrep -af helloworld
6408 java -jar ./target/helloworld-<version>-runner.jar
KĂ€ivitame ps ja pmap, et mÔÔta mĂ€lu kasutust, kuid nĂŒĂŒd protsessile 6408.
Nii:
$ ps -o pid,rss,command -p 6408
PID RSS COMMAND
6408 125732 java -jar ./target/helloworld-quarkus-runner.jar
Ja just niimoodi:
$ 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
Vaadates jÀlle RSS-i, nÀeme, et JAR-pakett tarbib umbes 130 MB.
TĂ€idetav fail
KĂ€ivitame natiivversiooni (vt jaotist âKĂ€ivitame natiivse tĂ€idetava faili helloworldâ ):
$ ./target/helloworld--runner
Vaadates jÀlle tema PID-d:
$ pgrep -af helloworld
6948 ./target/helloworld--runner
Ja seejÀrel kasutame saadud protsessi identifikaatorit (6948) kÀskudes ps ja pmap.
Nii:
$ ps -o pid,rss,command -p 6948
PID RSS COMMAND
6948 19084 ./target/helloworld-quarkus-runner
Ja nii:
$ pmap -x 6948
6948: ./target/helloworld-quarkus-runner
Aadress Kbytes RSS Dirty ReĆŸiim Kaartimine
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
Vaadake RSS-i ja nÀeme, et tÀitmisfail kasutab umbes 20 MB mÀlu.
VÔrdleme mÀlu kasutust
KokkuvÔttes saime jÀrgmised numbrid mÀlukasutuse kohta:
- JBoss EAP â 650 MB.
- JAR-pakett â 130 MB.
- TĂ€itmisfail â 20 MB.
Ilmselgelt kasutab tÀitmisfail palju vÀhem mÀlu.
KokkuvÔte postitustest 4 ja 5
Selles ja eelnevas postituses kĂ€sitlesime Java-rakenduste moderniseerimise kĂŒsimust, kasutades Quarkuse toetatud tehnoloogiaid (CDI ja Servlet 3), samuti erinevaid meetodeid nende rakenduste arendamiseks, kompileerimiseks ja kĂ€itamiseks. NĂ€itasime, kuidas koguda andmeid mĂ€lu kasutamise kohta, et hinnata paremust, mis on saavutatud selle moderniseerimise tulemusena. Need artiklid aitavad mĂ”ista, kuidas Quarkus töötab ja milline on selle kasu â olgu tegemist meie nĂ€idiste lihtsa helloworld programmiga vĂ”i palju keerukamate pĂ€riseluliste rakendustega.
Naaseme kahe nĂ€dala pĂ€rast Quarkuse lĂ”pppostitusega â kohtumiseni!
Meie lĂ”pppostituses nĂ€itame, kuidas ĂŒhendada AMQ Online ja Quarkus, et luua kaasaegne sĂ”numite edastussĂŒsteem OpenShiftis, kasutades kahte uut tehnoloogiat, mis on seotud sĂ”numite töötlemisega. Loe edasi .
Allikas: habr.com
