java JVM के लिए अधिकतम मेमोरी उपयोग कैसे सेट करें?




memory memory-management (4)

मैं जेवीएम द्वारा उपयोग की जाने वाली अधिकतम मेमोरी को सीमित करना चाहता हूं। ध्यान दें, यह केवल ढेर नहीं है, मैं इस प्रक्रिया द्वारा उपयोग की जाने वाली कुल स्मृति को सीमित करना चाहता हूं।


यदि आप jvm (ढेर आकार नहीं) के लिए स्मृति सीमित करना चाहते हैं ulimit -v

जेवीएम और हीप मेमोरी के बीच अंतर का विचार पाने के लिए, इस उत्कृष्ट लेख पर एक नज़र डालें http://blogs.vmware.com/apps/2011/06/taking-a-closer-look-at-sizing-the-java-process.html


आपको स्टैक लीकिंग मेमोरी के बारे में चिंता करने की ज़रूरत नहीं है (यह बेहद असामान्य है)। एकमात्र समय जब आप ढेर को नियंत्रण से बाहर कर सकते हैं तो अनंत (या वास्तव में गहरा) रिकर्सन के साथ होता है।

यह सिर्फ ढेर है। क्षमा करें, पहले आपके प्रश्न को पूरी तरह से नहीं पढ़ा।

आपको निम्न कमांड लाइन तर्क के साथ JVM चलाने की आवश्यकता है।

-Xmx<ammount of memory>

उदाहरण:

-Xmx1024m

इससे JVM के लिए अधिकतम 1 जीबी मेमोरी की अनुमति होगी।


नेटिव हेप को -XX द्वारा बढ़ाया जा सकता है: MaxDirectMemorySize = 256M (डिफ़ॉल्ट 128 है)

मैंने कभी इसका इस्तेमाल नहीं किया है। शायद आप इसे उपयोगी पाएंगे।


तर्कों का उपयोग -Xms<memory> -Xmx<memory> । क्रमशः मेग्स और गीग्स बाइट्स को इंगित करने के लिए संख्याओं के बाद M या G उपयोग करें। -Xms न्यूनतम और -Xms अधिकतम इंगित करता है।





profiling