2010-01-15 15 views
10

मेरे पास फ़ाइलों को खोजने के लिए जावा डेस्कटॉप एप्लिकेशन है और यह आमतौर पर डिफ़ॉल्ट ढेर सीमा तक पहुंच जाता है। मेरे पास उन सभी सिस्टमों तक पहुंच नहीं है, जिन्हें इंस्टॉल किया जाएगा, इसलिए मैं एप्लिकेशन में जेवीएम ढेर आकार को बढ़ाना चाहता हूं। किसी को भी मेरी मदद कर सकते अपने आवेदनजावा ढेर आकार को प्रोग्रामेटिक रूप से कैसे बढ़ाएं

+2

आप जेवीएम (जैसे एक्सएमएक्स) के लिए परिभाषित प्रारंभिक पैरामीटर के साथ कुछ प्रारंभिक स्क्रिप्ट (बल्ले या श) जोड़ने का चयन क्यों नहीं करते हैं और इसे एप्लिकेशन के साथ ही तैनात करते हैं। –

+3

यदि कोई ऐप इसे इच्छानुसार उठा सकता है तो सीमा निर्धारित करने का क्या मतलब होगा? –

+0

आप चल रहे अनुप्रयोग में स्मृति बाधाओं को प्रोग्रामेटिक रूप से बदल नहीं सकते –

उत्तर

2

में कैसे मुझे लगता है कि प्रोग्राम के रूप में कर सकते हैं वृद्धि जावा ढेर आकार के बारे में इस पोस्ट देखें:

increase the java heap size permanently?

हो सकता है कि यह भी आप अपने कोड स्मृति उपयोग को कम करने के लिए के कुछ हिस्से को साफ कर सकते हैं।

बेस्ट सादर

4

वहाँ ऐसा करने का कोई इस तरह के मानक एपीआई है।

मैं सुझाव दूंगा कि आप अपने आवेदन को आमंत्रित करने के लिए जावा वेब स्टार्ट का उपयोग करें (स्थानीय अनुप्रयोगों के लिए नवीनतम सूर्य जावा 6 में उपयोग किया जा सकता है) क्योंकि यह आपको इसके लिए मान निर्दिष्ट करने की अनुमति देता है।

इसके बाद आप एक ही फाइलों के लिए तीन या चार लिंक देख सकते हैं, लेकिन "छोटे", "मध्यम", "बड़े", "विशाल" ढेर आकार के साथ।

2

launch4j जैसे कुछ पर नज़र डालें और निष्पादन योग्यों को तैनात करने पर विचार करें जहां कोई व्यक्ति आपके आवेदन को चलाने पर सीमा को नियंत्रित कर सकता है।

आप इस प्रोग्रामेटिक रूप से ऐसा करने में सक्षम नहीं होंगे।

2

डेस्कटॉप अनुप्रयोगों के लिए, मैं एक लॉन्चर प्रदान करने का सुझाव देता हूं जो आपके इच्छित मेमोरी आकार को निर्दिष्ट कर सकता है। आपके जेवीएम की कॉन्फ़िगरेशन के अतिरिक्त, आप एक आइकन, फ़ाइल एसोसिएशन इत्यादि भी प्रदान कर सकते हैं।

तैनाती विकल्पों के लिए यह SO question देखें।

6

सेटिंग -Xmx को एक गीग में यह मतलब नहीं है कि JVM स्टार्ट-अप पर उस स्मृति को आवंटित करेगा। JVM केवल -Xms (प्लस ओवरहेड) आवंटित करेगा जब तक कि अधिक ढेर स्थान की आवश्यकता न हो। क्या आपको अपने उपयोगकर्ताओं को वर्चुअल मेमोरी को थ्रैश करने या ओएस से असफल स्मृति आवंटन से बचाने की आवश्यकता है? यदि नहीं, तो बस एक्सएमएक्स को एक बड़े मूल्य पर सेट करें। ध्यान दें कि विंडोज 32 बिट जेवीएम अक्सर 1.2 गीगा से अधिक एक्सएमएक्स सेटिंग्स को अनदेखा कर देगा, इसलिए सुरक्षित होने के लिए अधिक से अधिक अनुरोध नहीं करना चाहिए या सुरक्षित होना चाहिए।

+1

32-बिट जेवीएम बड़े अधिकतम ढेर आकारों को अनदेखा नहीं करेंगे, इसके बजाय वे शुरू नहीं होंगे। बस सेट -एमएक्स 1200 मीटर या इसी तरह। (-एमएक्स बस के साथ-साथ -Xmx काम करता है) –

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