मैं जावा 5 पर एक क्लाइंट-साइड स्विंग एप्लिकेशन (चित्रमय फ़ॉन्ट डिजाइनर) लिख रहा हूं । हाल ही में, मैं त्रुटि में चल रहा हूं क्योंकि मैं मेमोरी उपयोग पर रूढ़िवादी नहीं हूं। उपयोगकर्ता असीमित संख्या में फ़ाइलें खोल सकता है, और प्रोग्राम मेमोरी में खोली गई वस्तुओं को रखता है। एक त्वरित शोध के बाद मुझे 5.0 जावा वर्चुअल मशीन में एर्गोनॉमिक्स और अन्य लोगों ने विंडोज मशीन पर यह कहते हुए पाया कि जेवीएम डिफॉल्ट अधिकतम आकार के रूप में है ।java.lang.OutOfMemoryError: Java heap space
64MB
इस स्थिति को देखते हुए, मुझे इस बाधा से कैसे निपटना चाहिए?
मैं जावा में कमांड लाइन विकल्प का उपयोग करके अधिकतम हीप आकार बढ़ा सकता हूं , लेकिन इसके लिए उपलब्ध रैम का पता लगाने और कुछ लॉन्चिंग प्रोग्राम या स्क्रिप्ट लिखने की आवश्यकता होगी। इसके अलावा, कुछ परिमित अधिकतम तक बढ़ने से अंततः समस्या से छुटकारा नहीं मिलता है।
मैं अपने कुछ कोड को पुन: लिख सकता हूं ताकि ऑब्जेक्ट्स को सिस्टम को फाइल करने के लिए लगातार रखा जा सके (डेटाबेस का उपयोग करना एक ही बात है) मेमोरी को खाली करने के लिए। यह काम कर सकता है, लेकिन यह शायद बहुत काम भी है।
यदि आप मुझे उपरोक्त विचारों या स्वचालित वर्चुअल मेमोरी जैसे कुछ विकल्पों के विवरणों को इंगित कर सकते हैं , तो ढेर के आकार को गतिशील रूप से विस्तारित करना , यह बहुत अच्छा होगा।