/ / जावा कचरा संग्रह, कक्षा आधारित कार्यकाल - जावा, कचरा-संग्रह, विलंबता

जावा कचरा संग्रह, वर्ग आधारित Tenuring-जावा, कचरा-संग्रह, विलंबता

मैं के मापदंडों के साथ खेल रहा हैजावा गारबेज कलेक्टर, और मैं महंगे और लगातार छोटे कचरा संग्रह को देख रहा हूं क्योंकि एडेन / उत्तरजीवी स्पेस भरता है। यह मेरे कारण बहुत बड़ी वस्तुओं का एक पूल आवंटित करने के कारण है। इन वस्तुओं को मैं जानता हूं कि "परमिशन" हैं, इसमें वे हैं। पुन: उपयोग किया जाता है लेकिन कभी भी जीसीड नहीं किया जाएगा। मैं इसलिए नए प्रकार के बजाय पुरानी पीढ़ी में इन प्रकार की वस्तुओं को "स्वचालित रूप से" लगाने का एक तरीका खोजने की कोशिश कर रहा हूं।

मैं वर्तमान में बहुत बड़ी नई पीढ़ी को आवंटित करके (बहुत लगातार मामूली जीसी से बचने के लिए) इस मुद्दे के आसपास हो रहा हूं, दुर्भाग्य से, इसका मतलब है कि प्रत्येक व्यक्तिगत संग्रह अधिक महंगा है।

मैं प्रति-वर्ग, निर्दिष्ट करने में सक्षम होना चाहूंगाकार्यकाल दर, और इसे वस्तुओं के विशिष्ट वर्गों के लिए बहुत कम के रूप में सेट करें जो मुझे पता है कि कभी भी जीसीड नहीं मिलेगा (और जो बहुत अधिक हैं (उनके मामले में, इसके बारे में है

मेरा आवेदन अत्यधिक विलंबता संवेदनशील है।

मेरा वर्तमान सेट 48 के न्यूनतम / अधिकतम आकार के साथ CMS का उपयोग कर रहा है।

क्या यह संभव है? मैंने हर संभव JVM झंडे के माध्यम से खोज की है और उस प्रभाव के बारे में कुछ भी पता नहीं लगा सकता है, और इसे कस्टम क्लास लोडर के साथ करने का कोई तरीका नहीं देख सकता है।

उत्तर:

जवाब के लिए 2 № 1

हॉटस्पॉट को ध्यान में रखते हुए, ऐसा कोई झंडा नहीं है जो आपको ओल्ड क्लास में सीधे कुछ क्लास इंस्टेंसेस आवंटित करने की अनुमति देगा।

यदि पूल वास्तव में पुन: उपयोग और "स्थायी" है, तो आपकेवल पूल आवंटन के दौरान अक्सर मामूली gcs हो रही होनी चाहिए। आपको अपने आवेदन को लंबे समय तक चलाने और यह देखने की आवश्यकता है कि क्या पूल वास्तव में कार्यकाल था। उसके बाद, आपको पूल के उपयोग के कारण किसी भी मामूली जीसी को नहीं देखना चाहिए।