लघु जवाब
जावा ढेर आकार दोहरीकरण, कचरा संग्रहण रुक जाता है के लिए प्रतीक्षा समय दोगुना हो जाता है, कि वर्तमान JVM प्रौद्योगिकियों के साथ कई सेकंड के हो जाते हैं जब ढेर जीबी क्रम में है। ऐसा लगता है कि नए रिलीज Java 7 is going to change that।
लांग जवाब
MaxPermSize स्थायी पीढ़ी ढेर के लिए अधिकतम आकार है, एक ढेर है कि कक्षाओं की बाइट कोड रखती है और वस्तु वास्तविक उदाहरणों वाले ढेर से अलग रखा जाता है। वेब अनुप्रयोगों के मामले में ध्यान में रखना एक बात यह है कि प्रत्येक गर्म पुन: तैनाती में यह स्मृति उपयोग समान कक्षाओं की कई प्रतियों के साथ बढ़ने जा रहा है। जब तक -XX: + CMSClassUnloadingEnabled निर्दिष्ट नहीं है।
अधिकतम ढेर आकार (-Xmx) और MaxPermSize विचार कितनी स्मृति आवेदन वर्गों और उदाहरणों, सर्वर की कुल मेमोरी और मेमोरी अन्य अनुप्रयोगों की जरूरत के लिए आवश्यक है को ध्यान में रखकर निर्धारित किया जाना है।
एक और महत्वपूर्ण बात यह है कि से मेमोरी का विस्तार करना न्यूनतम हीप आकार (-Xms) एक महंगा ऑपरेशन है। खासकर वित्तीय अनुप्रयोगों के मामले में इसका मतलब देरी हो सकती है। समान वास्तविक समय की आवश्यकताओं के साथ, एक ही मूल्य पर -Xms और -Xmx सेट करना एक अच्छा विचार हो सकता है।
निम्नलिखित बात ब्याज http://www.infoq.com/presentations/Java-without-the-GC-Pauses
बात से की हो सकती है आप जताना सकता है कि ढेर को एक निश्चित सीमा 2GB, 10Gb, 100Gb की तुलना में अधिक वृद्धि के पक्ष प्रभाव, लंबे समय तक इसका मतलब है कूड़ा संग्रह के लिए समय को थामने कि सका बहुत बड़े ढेर के मामले में सेकंड या एक मिनट के लिए सब कुछ बंद करो।
वर्तमान जेवीएम तकनीक के साथ, आप अपने आवेदन को चलाने के लिए पर्याप्त ढेर सेट करना चाहते हैं, लेकिन बहुत बड़ा नहीं है। सही आकार खोजने का एक तरीका, इसे सबसे बड़े संभव मूल्य पर सेट किया जा सकता है, फिर आधे में कटौती करें और जब तक आप समस्याएं न पाएं, तब तक आधे में कटौती करते रहें, जब आप करते हैं, अंतिम पाए गए मान को दोगुना करें और इसे चुने हुए ढेर आकार के रूप में रखें उत्पादन के लिए।
पाठ्यक्रम की यह सलाह जीबी ऑर्डर में बड़ी ढेर के लिए लागू होती है, यदि आपका एप्लिकेशन 256 एमबी मेमोरी के साथ ठीक चलता है, तो मैं बिना किसी जांच के उस मूल्य को रखूंगा।
-Xms512m -Xmx512m -XX:MaxPermSize=256m -XX:+CMSClassUnloadingEnabled
संदर्भ उदाहरण के लिए धन्यवाद! कॉपी-पेस्ट कुछ कारणों (वर्चुअल मशीन) के लिए मेरे लिए काम नहीं करता है, जो सोच सकते हैं कि यह क्यों काम नहीं कर रहा है .. – Fico
@Fico शायद आपकी आभासी मशीन के ढेर पर कॉपी-पेस्ट के लिए पर्याप्त जगह नहीं है? –