java - जावा में ढेर आकार बढ़ाएं




heap-memory (8)

क्या मैं ढेर मेमोरी को 75% भौतिक मेमोरी (6 जीबी हीप) में बढ़ा सकता हूं।

हाँ तुम कर सकते हो। वास्तव में, यदि आप चाहें तो भौतिक स्मृति की मात्रा से अधिक बढ़ सकते हैं।

क्या ऐसा करना एक अच्छा विचार है इस पर निर्भर करता है कि आपके सिस्टम पर और कितना चल रहा है। विशेष रूप से, यदि वर्तमान में चल रहे अनुप्रयोगों और सेवाओं का "कामकाजी सेट" उपलब्ध भौतिक स्मृति से अधिक महत्वपूर्ण है, तो आपका सिस्टम "थ्रैश" करने के लिए उत्तरदायी है, जिससे डिस्क पर वर्चुअल मेमोरी पेजों को स्थानांतरित करने में काफी समय लगता है। शुद्ध प्रभाव यह है कि प्रणाली बहुत धीमी हो जाती है।

मैं विंडोज 2003 सर्वर (64-बिट) पर 8 जीबी रैम के साथ काम कर रहा हूं। मैं ढेर मेमोरी अधिकतम कैसे बढ़ा सकता हूं? मैं ढेर आकार को 1500 एमबी तक बढ़ाने के लिए -Xmx1500m ध्वज का उपयोग कर रहा हूं। क्या मैं ढेर मेमोरी को 75% भौतिक मेमोरी (6 जीबी हीप) में बढ़ा सकता हूं?


32-बिट जेवीएम पर, सैद्धांतिक रूप से सेट किए जाने वाले सबसे बड़े ढेर आकार 4 जीबी हैं। एक बड़े ढेर आकार का उपयोग करने के लिए, आपको 64-बिट JVM का उपयोग करने की आवश्यकता है। निम्नलिखित आज़माएं:

जावा-एक्सएमएक्स 6144 एम-डी 64

-d64 ध्वज महत्वपूर्ण है क्योंकि यह 64-बिट मोड में चलाने के लिए JVM को बताता है।


आप JVM पैरामीटर -Xms और -Xmx को पार करके हीप आकार बढ़ा सकते हैं:

जार फ़ाइलों के लिए:

java -jar -Xms4096M -Xmx6144M jarFilePath.jar

जावा फाइलों के लिए:

 java -Xms4096M -Xmx6144M ClassName

उपर्युक्त पैरामीटर InitialHeapSize (-Xms) को 4 जीबी (4096 एमबी) और मैक्सहेपसाइज ( -एक्सएमएक्स) से 6 जीबी (6144 एमबी) तक बढ़ाते हैं

लेकिन, यंग जेनरेशन हीप साइज एक ही रहेगा और अतिरिक्त हेपसाइज पुराने पीढ़ी के हीप आकार में जोड़ा जाएगा। यंग जनरल हीप और ओल्ड जनरल हीप के आकार को बराबर करने के लिए, -XX: NewRatio = 1 -XX: -UseAdaptiveSizePolicy Params का उपयोग करें।

java -jar -Xms4096M -Xmx6144M -XX:NewRatio=1 -XX:-UseAdaptiveSizePolicy pathToJarFile.jar

-XX: न्यूराटियो = पुराना जनरल हीप आकार: यंग जनरल हेपसाइज (आप अपने वांछित अनुपात प्राप्त करने के लिए इस अनुपात के साथ खेल सकते हैं)।


कई लोगों ने -Xms और -Xms के -Xms विकल्पों के साथ हीप आकार के विशिष्ट उत्तरों की ओर इशारा किया। मैं यह इंगित करना चाहता हूं कि यह जेवीएम के लिए स्मृति विकल्पों का एकमात्र प्रकार नहीं है। विशेष रूप से यदि आप प्रवाह पर ढेर हो जाते हैं, तो आप अतिरिक्त विकल्प जैसे -Xss8m जोड़कर स्टैक के आकार को बढ़ाना चाहते हैं।

इस समस्या के लिए, -Xms2g -Xmx6g -Xss8m जैसे कुछ के -Xms2g -Xmx6g -Xss8m विकल्प एक समाधान होंगे।

मैं इस जानकारी को साझा कर रहा हूं क्योंकि जेवीएम मेमोरी को बढ़ाने के तरीके पर मेरी Google खोजों ने मुझे इस समाधान में ले लिया, और समाधान स्मृति आवंटन की उच्च मात्रा के साथ काम नहीं करते थे। एक बार जब मैंने यह पता लगाया कि विशिष्ट सेटिंग्स क्या थीं, तो मैं Google को स्टैक आकार को बढ़ाने और गायब पर्म को कैसे प्राप्त करने में सक्षम था। :) उम्मीद है कि यह दूसरों को समय बचाता है, क्योंकि यह मुझे एक टन बचाएगा। :)


ग्रहण में सीधे JVM द्वारा आवंटित ढेर आकार को बढ़ाने के लिए संभव है ग्रहण आईडीई गोटो में

चलाएं ----> विन्यास विन्यास ----> तर्क

Enter -Xmx1g (इसका उपयोग अधिकतम आकार जैसे Xmx256m या Xmx1g ...... m -> mb g ---> gb सेट करने के लिए किया जाता है)


जावा-डी 64-एक्सएमएस 512 एम-एक्सएमएक्स 4 जी हैलोवर्ल्ड

जहां, -d64: 64-बिट JVM -Xms512m सक्षम करेगा: प्रारंभिक ढेर आकार 512 एमबी -Xmx4g के रूप में सेट करेगा: अधिकतम ढेर आकार 4 जीबी के रूप में सेट करेगा (यहां जावा फ़ाइल का नाम है: HelloWorld.java)


यह केवल जावा के 64 बिट संस्करण के साथ काम करता है। नियंत्रण कक्ष पर जाएं और जावा आइकन पर क्लिक करें। जावा कंट्रोल पैनल की छोटी विंडो पर, जावा मेनू बार पर क्लिक करें और फिर view बटन पर क्लिक करें।

यदि आपके पास दो जावा प्लेटफ़ॉर्म हैं, तो जावा के पिछले संस्करण को अक्षम करें, फिर रनटाइम पैरामीटर टेक्स्ट फ़ील्ड पर क्लिक करें और -Xmx1024m या RAM आकार से कम। रैम के बराबर ढेर आकार में वृद्धि न करें अन्यथा आपका सिस्टम क्रैश हो जाएगा।


हाँ। आप ऐसा कर सकते हैं।

आप अपनी ढेर मेमोरी को 75% भौतिक मेमोरी (6 जीबी हीप) या उच्चतर तक बढ़ा सकते हैं।

चूंकि आप 64 बिट का उपयोग कर रहे हैं, इसलिए आप अपनी वांछित राशि को अपनी वांछित राशि में बढ़ा सकते हैं। मामले में आप 32 बिट का उपयोग कर रहे हैं यह 4 जीबी तक सीमित है।

$ java -Xms512m -Xmx6144m JavaApplication

आपको शुरुआती ढेर आकार के साथ 512 एमबी तक और अधिकतम हेपसाइज 6 जीबी तक सेट करता है।

आशा करता हूँ की ये काम करेगा.. :)







heap-memory