Halo semuanya – ini adalah postingan kelima dalam seri Quarkus kami! (Omong-omong, tonton webinar kami
В
Pengukuran kinerja adalah dasar fundamental dari hampir semua peningkatan, dan pelaporan penggunaan memori merupakan bagian penting dari proses analisis kinerja. Hari ini kita akan melihat alat pengukuran relevan yang dapat digunakan untuk mengukur peningkatan yang dicapai dengan memodernisasi aplikasi Java.
Untuk informasi lebih lanjut tentang mengukur penggunaan memori, lihat tutorial Quarkus yang berjudul
Di bawah ini kami hanya akan menunjukkan kepada Anda cara membandingkan data penggunaan memori untuk tiga jenis aplikasi berbeda (JBoss EAP, paket JAR, dan executable) dengan mengumpulkan data di Linux menggunakan utilitas pmap dan ps.
JBoss EAP
Kami meluncurkan sebuah instance dari aplikasi JBoss EAP (lihat bagian “Menyebarkan helloworld” di
$ pgrep -lf jboss
7268 java
Catatan. Opsi –a memungkinkan Anda mengekstrak baris perintah lengkap (yaitu: $ pgrep -af jboss).
Sekarang kita menggunakan PID 7268 pada perintah ps dan pmap.
Disini jadi:
$ 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
Jadi:
$ 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
Kami melihat nilai RSS dan melihat bahwa JBoss EAP mengkonsumsi sekitar 650 MB memori.
paket JAR
Kami meluncurkan aplikasi JAR (lihat bagian “Jalankan helloworld yang dikemas dalam JAR” di
$ java -jar ./target/helloworld-<version>-runner.jar
Kami melihat PID lagi menggunakan perintah pgrep (kali ini kami menggunakan opsi -a yang dijelaskan di atas):
$ pgrep -af helloworld
6408 java -jar ./target/helloworld-<version>-runner.jar
Kami menjalankan ps dan pmap untuk mengukur penggunaan memori, tetapi sekarang untuk proses 6408.
Disini jadi:
$ ps -o pid,rss,command -p 6408
PID RSS COMMAND
6408 125732 java -jar ./target/helloworld-quarkus-runner.jar
Jadi:
$ 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
Kami melihat RSS lagi dan melihat bahwa paket JAR mengkonsumsi sekitar 130 MB.
File yang dapat dieksekusi
Kami meluncurkan yang asli (lihat bagian "Menjalankan file executable helloworld asli" di
$ ./target/helloworld-<version>-runner
Mari kita lihat kembali PID-nya:
$ pgrep -af helloworld
6948 ./target/helloworld-<version>-runner
Dan kemudian kita menggunakan ID proses yang dihasilkan (6948) dalam perintah ps dan pmap.
Disini jadi:
$ 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
Kami melihat RSS dan melihat bahwa file yang dapat dieksekusi memakan sekitar 20 MB memori.
Membandingkan konsumsi memori
Jadi, kami mendapat nomor berikut untuk penggunaan memori:
- JBoss EAP - 650MB.
- Paket JAR – 130 MB.
- File yang dapat dieksekusi – 20 MB.
Jelas, file yang dapat dieksekusi memakan lebih sedikit memori.
Mari kita rangkum postingan 4 dan 5
Dalam postingan ini dan postingan sebelumnya, kita melihat modernisasi aplikasi Java menggunakan teknologi yang didukung di Quarkus (CDI dan Servlet 3), serta berbagai cara untuk mengembangkan, membangun, dan menjalankan aplikasi tersebut. Kami menunjukkan cara mengumpulkan data penggunaan memori untuk mengevaluasi peningkatan yang dicapai oleh peningkatan tersebut. Artikel-artikel ini membantu Anda memahami cara kerja Quarkus dan mengapa hal ini berguna—apakah Anda berbicara tentang program helloworld sederhana dalam contoh kami atau aplikasi kehidupan nyata yang jauh lebih kompleks.
Kami akan kembali dalam dua minggu dengan postingan terakhir tentang Quarkus - sampai jumpa di sana!
Dalam postingan terakhir kami, kami akan menunjukkan cara menggabungkan AMQ Online dan Quarkus untuk membangun sistem perpesanan modern berbasis OpenShift menggunakan dua teknologi perpesanan baru. Baca terus
Sumber: www.habr.com