मैंने इस सवाल से पहले पूछा है - What does JVM flag CMSClassUnloadingEnabled actually do?, लेकिन इस बार यह थोड़ा अलग है!सीएमएसपीआरजीएन स्वीपिंग सक्षम बनाम सीएमएस क्लासउलोडिंग सक्षम
अगर मैं -XX:+CMSPermGenSweepingEnabled
ध्वज सेट के साथ एक जावा वी एम शुरू करते हैं, निम्न संदेश छपा है:
भविष्य
में CMSPermGenSweepingEnabled के स्थान पर CMSClassUnloadingEnabled का उपयोग करें -XX:+CMSPermGenSweepingEnabled
झंडा अक्सर प्रयोग किया जाता है PermGen OutOfMemory
त्रुटियों के खिलाफ कम करने के लिए, हालांकि मेरे पास read elsewhere है कि लोगों ने पाया है कि उपरोक्त सलाह का पालन करके उन्हें अभी भी इन त्रुटियों का सामना करना पड़ा है, लेकिन -XX:+CMSPermGenSweepingEnabled
के साथ चिपके हुए -XX:+CMSClassUnloadingEnabled
उनका वीएम पुनरारंभ के बीच लंबे समय तक रहा है।
-XX:+CMSClassUnloadingEnabled
वास्तव में -XX:+CMSPermGenSweepingEnabled
को निलंबित या वहाँ अभी भी उन दोनों के होने में कुछ लाभ है?
अग्रिम
रिच ps में धन्यवाद: मुझे पता है कि पर्म जनरल मुद्दों का मूल कारण अभी भी आमतौर पर classloader लीक है, यह संदेश है कि JVM पैदा करता है अगर हम ऊपर दिए गए विकल्पों का उपयोग के बारे में अधिक है।
धन्यवाद - क्या आपके पास इस बात का कोई लिंक या अन्य तरीका है? – Rich
जेडीके स्रोत कोड डाउनलोड करें (जिसमें हॉटस्पॉट शामिल है) और 'हॉटस्पॉट/src/share/vm/runtime/globals.hpp' का निरीक्षण करें। 'CMSPermGenSweepingEnabled' 1.5 में मौजूद है और 1.6 में अनुपस्थित है। इसके अलावा, 'हॉटस्पॉट/src/share/vm/runtime/arguments.cpp' के 1.6 संस्करण में संदेश प्रिंट करने के लिए नया कोड शामिल है। – kschneid
यह सहायक है – hvgotcodes