2013-04-17 4 views
8

कृपया मुझे उन विकल्पों का उद्देश्य बताएं। गुगलिंग के बाद मुझे लगता है कि: मिनहेपफ्रीरेटियो बताता है कि "जीसी के बाद हीप मेमोरी में निर्दिष्ट न्यूनतम प्रतिशत अंतरिक्ष सुनिश्चित किया जाएगा" और मैक्सहेपफ्रीरेटियो बताता है "जीसी के बाद अंतरिक्ष के निर्दिष्ट प्रतिशत से अधिक स्पेस मुक्त नहीं होगा "[यदि निर्दिष्ट प्रतिशत से अधिक मुफ्त मेमोरी है, तो उन मेमोरी को ओएस पर वापस कर दिया जाएगा]-XX का उद्देश्य क्या है: MinHeapFreeRatio और -XX: MaxHeapFreeRatio

जब मैंने इन विकल्पों को दोनों के लिए मूल्य के रूप में 10 के साथ करने की कोशिश की, यहां तक ​​कि 80% से अधिक मुक्त ढेर मेमोरी भी है, इसे ओएस पर वापस नहीं छोड़ा गया था।

विवरण: जावा हॉटस्पॉट (टीएम) 64-बिट सर्वर वी एम (1.5.0_15-B04, मिश्रित मोड) ParallelGC (अन्यथा प्रवाह कलेक्टर जो सर्वर वर्ग वी एम में डिफ़ॉल्ट कलेक्टर के रूप में जाना जाता है) मैं निर्दिष्ट -Xms50M और -Xmx1000M जेवीएम तर्क ओएस: विंडोज 7 पेशेवर (8 जीबी मेमोरी 64 बिट ओएस)

नोट: मैंने बस सीरियलजीसी के साथ भी कोशिश की, उन न्यूनतम और अधिकतम ढेर मुक्त अनुपात विकल्पों को नजरअंदाज कर दिया गया।

+0

मुझे लगता है कि यह प्रतिशत की एक सीमा निर्धारित कर रहा है, है ना? दोनों को 10 पर सेट नहीं करना चाहिए, लेकिन मानों को सेट करना: 'MinHeapFreeRatio = 10' और' MaxHeapFreeRatio = 90', उम्मीद है कि मैं इसे सही ढंग से समझ गया हूं। –

उत्तर

2

जावा बहुत ही कम समय में ओएस को स्मृति जारी करता है। आम तौर पर, अनुप्रयोग कम समय के बजाय समय के साथ अधिक स्मृति का उपयोग करते हैं। क्या आप वाकई स्मृति इतनी सीमित हैं कि आपको इसकी आवश्यकता है? क्या आप वाकई निवासी स्मृति की जांच कर रहे हैं वर्चुअल मेमोरी आकार नहीं जो आपके मामले में लगभग 1.2 जीबी होगा।

+1

हाँ पीटर मैंने VisualVM का उपयोग कर स्मृति उपयोग की जांच की। और मुझे लगता है कि समानांतर जीसी उन विकल्पों को अनदेखा कर देगा, यह "रोकें समय" और "थ्रूपुट" लक्ष्यों के आधार पर युवा और पुरानी पीढ़ियों का गतिशील रूप से आकार बदलता है। https://blogs.oracle.com/jonthecollector/entry/it_s_not_magic –

संबंधित मुद्दे