2012-09-12 20 views
10

मैं स्मृति विकल्प कॉन्फ़िगर नीचे है:जावा जी सी संकल्पना: CMSInitiatingOccupancyFraction

निर्यात MEM_OPTS = "- Xmx2560m -Xms2560m -XX: NewSize = 786m -XX: MaxNewSize = 786m -XX: + UseTLAB -XX: MaxPermSize = 512 एम "

जीसी पैरामीटर के रूप में नीचे हैं:

निर्यात GC1_OPTS =" - XX: + UseConcMarkSweepGC -XX: + UseParNewGC -XX: CMSInitiatingOccupancyFraction = 50 -XX: + CMSPermGenSweepingEnabled -XX: + CMSClassUnloadingEnabled -XX: + CMSParallelRemarkEnabled -XX: + UseAdaptiveGCBoundary " निर्यात GC2_OPTS = "- XX: + ExplicitGCInvokesConcurrent"

मैं जानना चाहता हूं, जब सीएमएस चलेंगे। क्या यह 2560 एमबी के 50% के बाद चलाएगा या यह 512 एमबी मेमोरी के 50% के बाद चलाएगा।

अवधारणा क्या है?

मेरी कुल हीप मेमोरी = 2560 + 786 + 512 एमबी होगी .... सही? या "-XX: नया आकार = 786m -XX: MaxNewSize = 786m" गैर ढेर के लिए है। कृपया अवधारणा को समझाएं।

उत्तर

22

न तो। पुरानी पीढ़ी के अधिग्रहण के बाद यह 50% तक पहुंचने के बाद योग्य होगा, जहां पुरानी पीढ़ी का आकार नई पीढ़ी के आकार के ढेर के आकार का आकार है: 2560 मीटर - 786 मीटर = 17 9 2 मीटर, तो यह होगा पुरानी पीढ़ी 896 मीटर तक पहुंच जाती है। लेकिन यह हमेशा एकमात्र पैरामीटर नहीं है। आप -XX: + UseCMSInitiatingOccupancy जोड़ना चाहते हैं केवल अगर आप इसे एकमात्र पैरामीटर बनना चाहते हैं (हालांकि मेरे अनुभव में, सीएमएस वास्तव में थ्रेसहोल्ड पर ट्रिगर करता है, यहां तक ​​कि इसके बिना भी)।

संक्षेप में:

  • -Xmx कुल ढेर स्मृति
  • -XX:NewSize/-XX:MaxNewSize है कि ढेर
  • अंतर के अंदर नई पीढ़ी के आकार की सीमा के आकार की सीमा है पुरानी पीढ़ी
  • -XX:PermSize/-XX:MaxPermSize स्थायी पीढ़ी के आकार की सीमा है, जो गैर-ढेर स्मृति
  • है
+0

स्पष्ट स्पष्टीकरण के लिए धन्यवाद। – VJS