java PermGen और हीप, अंतर और उनके महत्व




memory jvm (4)

अच्छा लिंक क्या है वास्तव में PermGen के लिए क्या खड़ा है? । विशेष रूप से इस ब्लॉग को पसंद आया

दोस्त,

क्या आप कृपया मुझे हेप और पेर्मजेन के लिए महत्व, अंतर और उपयोग दे सकते हैं। इसके अलावा यह जानना अच्छा होगा कि किस क्रम में उन वर्गों को लोड किया जाता है

जावा वीएम विनिर्देश से संबंधित स्पष्टीकरण वास्तव में उपयोगी होगा

धन्यवाद पुनीत


अच्छी तरह से मैं कोई विशेषज्ञ नहीं हूँ, लेकिन PermGem स्मृति हीप के भीतर रहता है, क्योंकि इसकी एक खास जगह है जहां सभी कक्षाएं रनटाइम पर लोड होती हैं। इसलिए यदि आपके पास बहुत अधिक कक्षाएं हैं, तो PermGem एक OutOfMemoryException फेंकता है और अच्छी तरह से ढेर आप अपने जावा कोड के भीतर instasciate ऑब्जेक्ट भंडार, जहां जीसी ऑब्जेक्ट जो स्टैक में चल रहे थ्रेड में किसी भी चर के द्वारा संदर्भित नहीं हैं इकट्ठा।


मेमोरी (हीप) पीढ़ियों में, या अलग-अलग उम्र के ऑब्जेक्ट धारण करने वाले स्मृति पूल हैं। हर पीढ़ी में कचरा संग्रह तब होता है जब पीढ़ी भरती होती है। वस्तुएं युवा वस्तुओं या युवा पीढ़ी के लिए पीढ़ी में आवंटित की जाती हैं, और शिशु मृत्यु दर के कारण अधिकांश वस्तुएं वहां मर जाती हैं

जब कोई नया ऑब्जेक्ट बनाया जाता है तो यह ईडन स्पेस को जाता है जो कि Young Generation का एक हिस्सा है।

यदि वस्तु अभी भी कुछ समय के बाद जीवित है तो यह उस tenured generation को जाता है जहां लंबे समय तक वस्तुओं को झूठ कहते हैं।

यदि ऑब्जेक्ट को प्रक्रिया में तब तक जीवित माना जाता है, तो ऑब्जेक्ट Perm Generation में ले जाया जाता है। Java classes को स्थायी पीढ़ी में संग्रहित किया जाता है।


मेरा मानना ​​है कि Permgen मेमोरी क्षेत्र हीप मेमोरी के भीतर ही है यह विशेष उद्देश्य के लिए बनाया गया है जैसे स्ट्रिंग धारण करना।

निर्मित सभी ऑब्जेक्ट को पर्मजेन मेमोरी नहीं मिलती है केवल जेडीके 6 या उससे कम में स्ट्रिंग जैसी विशेष क्लैसेस के लिए है

आधुनिक जेडीके संस्करणों में जैसे 8 और इसके बाद के संस्करण, पेरेज नहीं पाया जाता है, हालांकि गैर-ढेर और अन्य विभिन्न कैश मेमोरी जैसी नई मेमोरी पेश की गई है।





heap-memory