7.1* Axlat yig'uvchini to'g'ri tanlash
Agar dasturingizda kechikish vaqtiga qat'iy talablar bo'lmasa, shunchaki dasturni ishga tushirib, JVM ning o'zi to'g'ri yig'uvchini tanlashiga ruxsat bering.
Ko'pincha oddiy sozlamalar juda yaxshi ishlaydi. Zarurat tug'ilsa, unumdorlikni oshirish uchun halqa o'lchamini sozlash mumkin. Agar unumdorlik hali ham kutilganidan past bo'lsa, dasturingiz talablariga qarab yig'uvchini almashtirib ko'ring.
- Ketma-ket. Agar ilovada kichik ma'lumotlar to'plami (taxminan 100 MB gacha) bo'lsa va/yoki u bir protsessorda kechikish talablari holda ishlashi kerak bo'lsa.
- Parallel. Agar ilovaning yuqori unumdorligi ustun bo'lsa va kechikish talablari yo'q (yoki bir soniya va undan ko'p to'xtashlar maqbul).
- CMS/G1. Agar javob vaqtini maksimal tezlikdan ko'ra muhimroq bo'lsa va axlat yig'ish paytida to'xtashlar bir soniyadan qisqa bo'lishi kerak bo'lsa.
- ZGC. Agar javob vaqtiga yuqori e'tibor berilsa va/yoki juda katta halqa ishlatilsa.
7.2* Axlat yig'ish bo'yicha tavsiyalar
Qo'lda triggerlardan qoching
Java'dagi axlat yig'ish jarayoni haqida eng muhim narsalardan biri - bu noaniqlik. Ya'ni, qachon sodir bo'lishini oldindan bilish mumkin emas.
System.gc() yoki Runtime.gc() metodlari yordamida axlat yig'uvchi ishga tushiruvchi signalni kodga qo'shish mumkin, ammo bu ularning albatta ishga tushishini kafolatlamaydi.
Tahlil uchun vositalardan foydalaning
Agar dasturni ishga tushirish uchun yetarli xotira bo'lmasa, sekinlashuvlar, uzoq vaqt davom etadigan axlat yig'ish jarayonlari, "dunyo to'xtashi" voqealari va oxir-oqibat xotira yetishmovchiligi xatolari bilan duch kelishingiz mumkin. Bu halqa juda kichik ekanligini ko'rsatishi mumkin, ammo bu dasturda xotira sızıntısı borligini ham anglatishi mumkin.
Jstat yoki Java Flight Recorder kabi monitoring vositasidan foydalanish orqali axlatni ko'rish imkoniyatini oshiring. Axlatdan foydalanish cheksiz o'sib borayotganligini ko'rishingiz mumkin, bu esa koddagi xatoni ko'rsatishi mumkin.
Oddiy sozlamalarni afzal ko'ring
Agar sizda kichik avtonom Java-dastur bo'lsa, sizga yig'ishni sozlashning hojati yo'q. Oddiy sozlamalar sizga yaxshi xizmat qiladi.
JVM flaglari yordamida sozlang
Java'da axlat yig'ishni sozlashning eng yaxshi usuli - JVM flaglarini o'rnatishdir. Flaglar yordamida axlat yig'uvchini (masalan, Serial, G1 va hokazo), halqaning boshlang'ich va maksimal o'lchamini, halqa bo'limlarining o'lchamini (masalan, Yoshlar avlodi, Katta avlod) va boshqalarni belgilashingiz mumkin.
To'g'ri yig'uvchini tanlang
Sozlashning dastlabki nuqtalari belgilanishi kerak bo'lgan dastur turidir. Masalan, parallel axlat yig'uvchi samarali, lekin ko'pincha "dunyo to'xtashi" voqealarini chaqiradi, bu esa uzoq to'xtashlarga ruxsat berilgan ichki ishlov uchun ko'proq mos keladi.
Shu bilan birga, CMS axlat yig'uvchi kechikishni minimal darajada saqlash uchun mo'ljallangan bo'lib, tezkorlik muhim bo'lgan veb-dasturlar uchun ideal hisoblanadi.
GO TO FULL VERSION