2010-04-29 10 views
48

निम्नलिखित कमांड लाइनडुप्लिकेट जावा रनटाइम विकल्प: वरीयता का क्रम क्या है?

java -Xms128m -Xms256m myapp.jar 

कौन सा सेटिंग्स JVM न्यूनतम स्मृति (Xms विकल्प) के लिए लागू होगी ध्यान में रखते हुए: 128 या 256M?

+10

प्रश्न में कोई टाइपो नहीं। एक्सएमएस विकल्प उद्देश्य पर दो बार उपयोग किया जाता है। यह – fabien7474

उत्तर

20

जेवीएम, शायद संस्करण पर निर्भर करता है ... शायद उस समय आपके डेस्क पर कितने पेपर क्लिप हैं। यह भी काम नहीं कर सकता है। ऐसा मत करो।

यदि किसी कारण से यह आपके नियंत्रण से बाहर है, तो संकलित करें और इसे उसी तरह चलाएं जैसे आप अपना जार चलाएंगे। लेकिन चेतावनी दी जानी चाहिए, विकल्पों के क्रम पर भरोसा करना वास्तव में एक बुरा विचार है।

public class TotalMemory 
{ 
    public static void main(String[] args) 
    { 
     System.out.println("Total Memory: "+Runtime.getRuntime().totalMemory()); 
     System.out.println("Free Memory: "+Runtime.getRuntime().freeMemory()); 
    } 
} 
+2

+1 प्रश्न का पदार्थ है - उन पेपरक्लिप्स को बेहतर ढंग से गिनें :-)। गंभीरता से, यह उन अस्पष्ट तर्कों को पारित करने के लिए रॉकेट विज्ञान नहीं है। –

+2

पेपर क्लिप की विभिन्न संख्याओं के साथ प्रयास कर रहा है। वास्तव में प्रतिक्रिया देने के बजाय प्रश्न का उत्तर देने के लिए पहले एक – OganM

9

मुझे यकीन है कि यह दूसरा है। तर्क आमतौर पर क्रम में संसाधित कर रहे हैं:

for(int i=0; i<argc; i++) { 
    process_argument(argv[i]); 
} 

लेकिन अगर मैं जावा तर्क पार्सर लिख रहे थे, मैं परस्पर विरोधी तर्क पर शिकायत होगी।

29

आईबीएम जेवीएम विजेता के रूप में एक तर्क के सही उदाहरण का इलाज करता है। मैं हॉटस्पॉट, आदि से बात नहीं कर सकता ..

हम ऐसा करते हैं क्योंकि बैच फ़ाइलों से अक्सर गहराई से नेस्टेड कमांड लाइनें होती हैं जहां लोग केवल अंत में जोड़ सकते हैं, और विजेता बनाना चाहते हैं।

+12

+1 पर स्विच नहीं मिल सकता है। – JimN

+0

दरअसल: वास्तव में प्रश्न का उत्तर देने के लिए https://www.ibm.com/support/knowledgecenter/SSYKE2_7.0.0/com.ibm.java.zos.70.doc/diag/appendixes/cmdline/cmdline_specifying.html –

25

एफटीआर, ओपनजेडीके 1.7 कम से कम -Xms के लिए, सही मूल्य लेता प्रतीत होता है।

+10

+1 प्रजनन के बजाय। – JimN

+0

बस सीएसएस की तरह, बाद में जीत – ryenus

33

हमेशा की तरह, अपने स्थानीय जेवीएम के विशिष्ट कार्यान्वयन की जांच करें, लेकिन यहां कोड के बिना कमांड लाइन से जांचने का एक त्वरित तरीका है।

> java -version; java -Xmx1G -XX:+PrintFlagsFinal -Xmx2G 2>/dev/null | grep MaxHeapSize 

java version "1.8.0_25" 
Java(TM) SE Runtime Environment (build 1.8.0_25-b17) 
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode) 
uintx MaxHeapSize   := 2147483648  {product} 

तो तुम इस मामले में देखेंगे, तर्क का दूसरा उदाहरण (2 जी) क्या पूर्वता लेता है (कम से कम 1.8 में) और कहा कि अधिकांश अन्य आधुनिक संस्करण के साथ मेरा अनुभव के साथ-साथ रहा है।

+7

'जावा-एक्सएमएक्स 1 जी -XX: + प्रिंटफ्लैग्जफिनल-एक्सएमएक्स 2 जी 2>/dev/null | grep MaxHeapSize', इस तरह इसे कम करना आसान है। – ryenus

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