ټولو ته سلام - دا زموږ د کوارکس لړۍ پنځم پوسټ دی! (په لاره کې، زموږ ویبینار وګورئ
В
د فعالیت اندازه کول د نږدې هر ډول اپ گریڈ بنسټیز اساس دی، او د حافظې کارولو راپور ورکول د فعالیت تحلیل پروسې یوه مهمه برخه ده. نن ورځ به موږ د اندازه کولو اړونده وسیلې وګورو چې د جاوا غوښتنلیکونو عصري کولو سره ترلاسه شوي پرمختګونو مقدار کولو لپاره کارول کیدی شي.
د حافظې د کارونې اندازه کولو په اړه د نورو معلوماتو لپاره، د Quarkus ټیوټوریل سرلیک وګورئ
لاندې به موږ په ساده ډول تاسو ته وښیو چې څنګه د pmap او ps افادیتونو په کارولو سره په لینکس کې د معلوماتو راټولولو سره د دریو مختلف غوښتنلیکونو (JBoss EAP، JAR بسته ، او اجرا وړ) لپاره د حافظې کارولو ډیټا پرتله کړئ.
JBoss EAP
موږ د JBoss EAP غوښتنلیک یوه بیلګه پیل کوو (د "هیلوورلډ ځای پرځای کول" برخه وګورئ
$ pgrep -lf jboss
7268 java
یادونه: -a اختیار تاسو ته اجازه درکوي د بشپړ کمانډ لاین استخراج کړئ (د مثال په توګه: $ pgrep -af jboss).
اوس موږ په ps او pmap کمانډونو کې PID 7268 کاروو.
دلته دلته:
$ 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
او داسې:
$ 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
موږ د RSS ارزښت ته ګورو او ګورو چې JBoss EAP شاوخوا 650 MB حافظه مصرفوي.
د JAR بسته
موږ د JAR غوښتنلیک په لاره واچوو (د "Run helloworld پیکډ in JAR" برخه وګورئ
$ java -jar ./target/helloworld-<version>-runner.jar
موږ بیا د pgrep کمانډ په کارولو سره PID ته ګورو (دا ځل موږ پورته بیان شوي -a اختیار کاروو):
$ pgrep -af helloworld
6408 java -jar ./target/helloworld-<version>-runner.jar
موږ د حافظې کارولو اندازه کولو لپاره ps او pmap چلوو، مګر اوس د 6408 پروسې لپاره.
دلته دلته:
$ ps -o pid,rss,command -p 6408
PID RSS COMMAND
6408 125732 java -jar ./target/helloworld-quarkus-runner.jar
او داسې:
$ 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
موږ بیا RSS ته ګورو او ګورو چې د JAR کڅوړه نږدې 130 MB مصرفوي.
د اجرا وړ فایل
موږ اصلي پیل کوو (د "اصلي هیلوورلډ اجرایوي فایل چلول" برخه وګورئ
$ ./target/helloworld-<version>-runner
راځئ چې د هغې PID بیا وګورو:
$ pgrep -af helloworld
6948 ./target/helloworld-<version>-runner
او بیا موږ د پایلې پروسې ID (6948) په ps او pmap کمانډونو کې کاروو.
دلته دلته:
$ 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
موږ RSS ته ګورو او ګورو چې د اجرا وړ فایل شاوخوا 20 MB حافظه اخلي.
د حافظې مصرف پرتله کول
نو، موږ د حافظې کارولو لپاره لاندې شمیرې ترلاسه کړې:
- JBoss EAP - 650 MB.
- د JAR کڅوړه - 130 MB.
- د اجرا وړ فایل - 20 MB.
په ښکاره ډول، د اجرا وړ فایل خورا لږ حافظه اخلي.
راځئ چې پوسټونه 4 او 5 لنډیز کړو
په دې او پخوانیو پوسټونو کې، موږ د Quarkus (CDI او Servlet 3) کې ملاتړ شوي ټیکنالوژیو په کارولو سره د جاوا اپلیکیشنونو عصري کولو ته کتنه وکړه، او همدارنګه د ورته غوښتنلیکونو پراختیا، جوړولو او چلولو مختلفې لارې. موږ وښودله چې څنګه د حافظې کارولو ډیټا راټول کړئ ترڅو د داسې پرمختګ لخوا ترلاسه شوي پرمختګونو ارزونه وکړئ. دا مقالې تاسو سره مرسته کوي چې پوه شي چې Quarkus څنګه کار کوي او ولې ګټور دی - که تاسو زموږ په مثالونو کې د ساده هیلوورلډ برنامې په اړه خبرې کوئ یا د ریښتیني ژوند خورا پیچلي غوښتنلیکونه.
موږ به په دوه اونیو کې د کوارکوس په اړه د وروستي پوسټ سره بیرته راشو - تاسو به هلته وګورو!
زموږ په وروستي پوسټ کې، موږ به وښیو چې څنګه د AMQ آنلاین او کوارکس سره یوځای کول ترڅو د دوه نوي پیغام رسولو ټیکنالوژیو په کارولو سره د عصري OpenShift-based پیغام رسولو سیسټم رامینځته کړي. ولولئ
سرچینه: www.habr.com