इन दलीलों को नजरअंदाज करने के कारणों को स्थायी कमियों के कारण JDK8 के लिए हॉटस्पॉट में हटा दिया गया है
- स्टार्टअप पर निश्चित आकार - धुन करने में मुश्किल।
- आंतरिक हॉटस्पॉट प्रकार जावा ऑब्जेक्ट थे: पूर्ण जीसी, अपारदर्शी के साथ आगे बढ़ सकते हैं, दृढ़ता से टाइप नहीं किए जा सकते हैं और डीबग-मेटाडाटा की आवश्यकता के लिए कठिन हो सकते हैं।
- पूर्ण संग्रह को सरल बनाएं: प्रत्येक कलेक्टर के लिए मेटाडेटा के लिए विशेष पुनरावृत्तियों
- जीसी ठहराव के दौरान वर्ग डेटा को समवर्ती रूप से निपटाना चाहते हैं
- PermGen द्वारा सीमित भविष्य के सुधारों को सक्षम करें।
स्थायी पीढ़ी (PermGen) स्थान को पूरी तरह से हटा दिया गया है और यह एक नई जगह से बदल दिया गया है जिसे Metaspace कहा जाता है। PermGen को हटाने के परिणाम स्पष्ट है कि PermSize और MaxPermSize JVM तर्कों को अनदेखा किया जाता है और आपको कभी java.lang.OutOfMemoryError: PermGen त्रुटि नहीं मिलेगी।
मेटास्पेस के लाभ
- जावा लैंग्वेज स्पेसिफिकेशन प्रॉपर्टी का लाभ उठाएं: क्लास और संबंधित मेटाडेटा लाइफटाइम्स क्लास लोडर से मेल खाते हैं
- प्रति लोडर भंडारण क्षेत्र - मेटास्पेस
- रैखिक आवंटन केवल
- कोई व्यक्तिगत पुनर्विचार (RedefineClasses और क्लास लोडिंग विफलता को छोड़कर)
- कोई जीसी स्कैन या संघनन नहीं
- मेटास्टेस वस्तुओं के लिए कोई स्थानांतरण नहीं
मेटास्पैस ट्यूनिंग
अधिकतम मेटासैप आकार को -XX: मैक्समैटेसैसेज़ ध्वज का उपयोग करके सेट किया जा सकता है, और डिफ़ॉल्ट असीमित है, जिसका अर्थ है कि केवल आपकी सिस्टम मेमोरी की सीमा है। -XX: मेटास्पैसिज़ ट्यूनिंग फ्लैग मेटासैप्स के प्रारंभिक आकार को परिभाषित करता है। यदि आप इस ध्वज को निर्दिष्ट नहीं करते हैं, तो मेटाबेस सक्रिय रूप से रनटाइम पर एप्लिकेशन की मांग के आधार पर पुन: आकार देगा।
परिवर्तन भविष्य में अन्य अनुकूलन और सुविधाएँ सक्षम करता है
- अनुप्रयोग वर्ग डेटा साझाकरण
- युवा संग्रह अनुकूलन, जी 1 वर्ग उतराई
- मेटाडाटा आकार में कटौती और आंतरिक जेवीएम पदचिह्न परियोजनाएं
जीसी प्रदर्शन में भी सुधार हुआ है। ज्यादा जानकारी