दिलचस्प पोस्ट
नियमित अभिव्यक्ति के बारे में जीसीसी 4.8 या इससे पहले छोटी गाड़ी है? क्या आईबीओलेट को एक संपत्ति और संश्लेषित होने की जरूरत है? आर में लम्बी / बिल्टीन्ट / दशमलव समतुल्य डेटाटाइप Xcode 4 – नए मैकिंटोश इंस्टॉलेशन पर प्रोविजनिंग प्रोफाइल पर त्रुटि "मान्य हस्ताक्षर पहचान नहीं मिली" मैं .htaccess के साथ दोस्ताना यूआरएल कैसे बना सकता हूँ? एसक्यूएल चयन गति इं बनाकर varchar वर्तमान पंक्ति के विवरण को पी से कैसे दिखाएं: डेटा एटी में डेटा: संवाद और सहेजने के बाद अपडेट करें स्क्रैप करने पर नोड से सभी पाठों में शामिल होने से कैसे बचें IIS7 – (413) अनुरोध इकाई बहुत बड़ा है | uploadReadAheadSize कैसे छवि आकार Markdown बदलने के लिए? जीएचसीआई में मल्टी-लाइन कमांड जावा में बारकोड इमेज जेनरेटर कैसे जावास्क्रिप्ट के साथ एक मोबाइल डिवाइस का पता लगाने के लिए? EF4 कोड पहले: एक नेविगेशन प्रॉपर्टी जोड़ने के बिना रिश्ते को कैसे जोड़ता है उद्देश्य सी में आरएसए कार्यान्वयन

कैसे डिफ़ॉल्ट जावा ढेर आकार निर्धारित है?

अगर मैं जावा कमांड लाइन से -Xmxn विकल्प को छोड़ देता हूं तो एक डिफ़ॉल्ट मान उपयोग किया जाता है। जावा प्रलेखन के अनुसार "डिफ़ॉल्ट मान सिस्टम विन्यास पर आधारित रनटाइम पर चुना जाता है"।

क्या सिस्टम कॉन्फ़िगरेशन सेटिंग्स डिफ़ॉल्ट मान को प्रभावित करते हैं?

वेब के समाधान से एकत्रित समाधान "कैसे डिफ़ॉल्ट जावा ढेर आकार निर्धारित है?"

Windows सिस्टम पर, आप सिस्टम पर डिफ़ॉल्ट पता लगाने के लिए निम्न आदेश का उपयोग कर सकते हैं, जहां आपके एप्लिकेशन चलते हैं

जावा -XX: + प्रिंटफ्लैग्सफ़नल-वर्जन | हीथ साइज

MaxHeapSize के विकल्प ( InitialHeapSize लिए) और InitialHeapSize लिए -Xms

यूनिक्स / लिनक्स सिस्टम पर, आप कर सकते हैं

जावा -XX: + प्रिंटफ्लैग्सफ़नल-वर्जन | ग्रीप हीप साइज़

मेरा मानना ​​है कि परिणामस्वरूप आउटपुट बाइट्स में है।

कचरा कलेक्टर एर्गोनॉमिक्स [ओरेकल] के अनुसार :

प्रारंभिक ढेर आकार:

मशीन पर मशीन की भौतिक मेमोरी का 1/64 वां का बड़ा या कुछ उचित न्यूनतम J2SE 5.0 से पहले, डिफ़ॉल्ट प्रारंभिक हेप आकार एक उचित न्यूनतम था, जो प्लेटफॉर्म से भिन्न होता है। आप -xx कमांड लाइन विकल्प का उपयोग करके इस डिफ़ॉल्ट को ओवरराइड कर सकते हैं।

अधिकतम ढेर आकार:

1 / 4वी भौतिक स्मृति या 1 जीबी की छोटी J2SE 5.0 से पहले, अधिकतम अधिकतम हेप आकार 64 एमबी था आप -Xmx आदेश-पंक्ति विकल्प का उपयोग करके इस डिफ़ॉल्ट को ओवरराइड कर सकते हैं।

अद्यतन करें:

जैसा कि टॉम एंडरसन ने अपनी टिप्पणी में बताया है, ऊपर सर्वर-क्लास मशीनों के लिए है। 5.0 जावा टीएम वर्चुअल मशीन में एर्गोनॉमिक्स से:

J2SE प्लेटफ़ॉर्म संस्करण 5.0 में एक क्लास की मशीन जिसे सर्वर-क्लास मशीन के रूप में संदर्भित किया गया है, मशीन के रूप में परिभाषित किया गया है

  • 2 या अधिक भौतिक प्रोसेसर
  • शारीरिक स्मृति के 2 या अधिक Gbytes

विंडोज ऑपरेटिंग सिस्टम के संस्करण चलाने वाले 32 बिट प्लेटफार्मों के अपवाद के साथ अन्य सभी प्लेटफार्मों पर डिफ़ॉल्ट मान संस्करण 1.4.2 के लिए डिफ़ॉल्ट मानों के समान है।

J2SE मंच संस्करण 1.4.2 में डिफ़ॉल्ट रूप से निम्न चयन किए गए थे

  • प्रारंभिक ढेर के आकार 4 Mbyte
  • 64 एमबीएटी का अधिकतम ढेर आकार

यह जावा 6 अपडेट के साथ बदल दिया गया है । http://www.oracle.com/technetwork/java/javase/6u18-142093.html

यह मानते हुए कि हमारे पास 1 जीबी भौतिक मेमोरी (इन दिनों काफी सामान्य) हैं, यह हमेशा आपकी भौतिक मेमोरी का 1/4 हिस्सा है

अर्नेस्टो सही है लिंक के अनुसार उन्होंने पोस्ट किया [1]:

नवीनीकृत क्लाइंट जेवीएम हीप कॉन्फ़िगरेशन

क्लाइंट जेवीएम में …

  • डिफ़ॉल्ट अधिकतम ढेर आकार 1 9 2 मेगाबाइट के भौतिक मेमोरी आकार के भौतिक मेमोरी का आधा हिस्सा है और अन्यथा 1 जीगाबाइट के भौतिक मेमोरी आकार के भौतिक मेमोरी के एक चौथाई

    उदाहरण के लिए, यदि आपकी मशीन में 128 मेगाबाइट की भौतिक मेमोरी है, तो अधिकतम मेप 64 एमबी मेगाबाइट और भौतिक स्मृति परिणामों के 1 गीगाबाइट के बराबर है, अधिकतम मेप साइज 256 मेगाबाइट में।

  • अधिकतम हीप आकार वास्तव में JVM द्वारा उपयोग नहीं किया जाता है, जब तक कि आपके प्रोग्राम इसकी आवश्यकता के लिए पर्याप्त ऑब्जेक्ट बनाता है। प्रारंभिक हेप आकार को बहुत छोटी राशि कहा जाता है, जिसे JVM प्रारंभ के दौरान आवंटित किया जाता है। …

  • सर्वर जेवीएम हेप कॉन्फ़िगरेशन एर्गोनॉमिक्स अब क्लाइंट के समान हैं, सिवाय इसके कि 32-बिट जेवीएम के लिए डिफ़ॉल्ट अधिकतम हेप आकार 1 गीगाबाइट है , जो 4 गीगाबाइट के भौतिक स्मृति आकार के बराबर है, और 64-बिट जेवीएम 32 गीगाबाइट के लिए है , इसी 128 गीगाबाइट के भौतिक मेमोरी आकार के लिए

[1] http://www.oracle.com/technetwork/java/javase/6u18-142093.html

डिफ़ॉल्ट मान सिस्टम विन्यास पर आधारित रनटाइम पर चुना जाता है

दस्तावेज़ीकरण पृष्ठ पर एक नज़र डालें

डिफ़ॉल्ट हीप आकार

जब तक कि प्रारंभिक और अधिकतम हेप आकार कमांड लाइन पर निर्दिष्ट नहीं किए जाते, तब तक उनकी गणना मशीन की स्मृति के आधार पर की जाती है।

  1. क्लाइंट जेवीएम डिफॉल्ट आरंभिक और अधिकतम हीप आकार:

    डिफ़ॉल्ट अधिकतम ढेर आकार 1 9 2 मेगाबाइट (एमबी) के भौतिक मेमोरी आकार तक भौतिक मेमोरी का आधा हिस्सा है और अन्यथा भौतिक मेमोरी का एक चौथाई 1 गीगाबाइट (जीबी) के भौतिक मेमोरी आकार तक है

  2. सर्वर JVM डिफ़ॉल्ट आरंभिक और अधिकतम हीप आकार:

    32-बिट जेवीएम पर, डिफ़ॉल्ट अधिकतम हेप आकार 1 जीबी तक हो सकता है अगर 4 जीबी या अधिक भौतिक मेमोरी है64-बिट जेवीएम पर, डिफ़ॉल्ट अधिकतम हेप आकार 32 जीबी तक हो सकता है अगर 128 जीबी या अधिक भौतिक मेमोरी

क्या सिस्टम कॉन्फ़िगरेशन सेटिंग्स डिफ़ॉल्ट मान को प्रभावित करते हैं?

आप फ्लैग- एक्स (प्रारंभिक हेप आकार) और -Xmx (अधिकतम हेप आकार) का उपयोग करके प्रारंभिक और अधिकतम हीप आकार निर्दिष्ट कर सकते हैं। यदि आपको पता है कि आपके आवेदन को कितनी अच्छी तरह से काम करने की जरूरत है, तो आप उसी मूल्य के लिए -Xms और -Xmx सेट कर सकते हैं

आईबीएम जेवीएम के लिए कमांड निम्न है:

 java -verbose:sizes -version 

Java 8 के लिए आईबीएम एसडीके के बारे में अधिक जानकारी के लिए – http://www-01.ibm.com/support/knowledgecenter/SSYKE2_8.0.0/com.ibm.java.lnx.80.doc/diag/appendixes/defaults.html? लैंग = hi

Java8 आपके Xmssize (न्यूनतम HeapSize) के लिए आपकी भौतिक मेमोरी के 1/6 वें के बड़े और आपके -Xmxsize (अधिकतम हीपसिज़) के लिए आपकी भौतिक मेमोरी के 1/4 का बड़ा आकार लेता है।

आप डिफ़ॉल्ट जावा हिएप आकार की जांच कर सकते हैं:

विंडोज में :

 java -XX:+PrintFlagsFinal -version | findstr /i "HeapSize PermSize ThreadStackSize" 

लिनक्स में :

 java -XX:+PrintFlagsFinal -version | grep -iE 'HeapSize|PermSize|ThreadStackSize' 

क्या सिस्टम कॉन्फ़िगरेशन सेटिंग्स डिफ़ॉल्ट मान को प्रभावित करते हैं?

आपकी भौतिक स्मृति और आपके जावा संस्करण