क्या कोई मुझे समझा सकता है कि जेवीएम (मैंने बहुत अधिक जांच क्यों नहीं की, लेकिन मैंने कभी ऐसा नहीं देखा है कि यह उस तरह से नहीं हुआ) एक निश्चित हीप आकार पर चलने की आवश्यकता है? मुझे पता है कि एक साधारण सन्निहित ढेर पर इसे लागू करना आसान है, लेकिन सूर्य जेवीएम अब एक दशक से अधिक पुराना है, इसलिए मैं उनसे यह सुधार करने का समय चाहता हूं।
स्टार्टअप के समय में अपने प्रोग्राम के अधिकतम मेमोरी साइज़ को परिभाषित करने की आवश्यकता होती है, ऐसा करने के लिए 1960 की बात लगती है, और फिर OS वर्चुअल मेमोरी मैनेजमेंट के साथ खराब इंटरैक्शन (GC पुनर्प्राप्त डेटा स्वैप आउट), यह निर्धारित करने में असमर्थता है कि जावा प्रक्रिया कितनी मेमोरी है। वास्तव में ओएस की ओर से उपयोग करते हुए, वीएम स्पेस की बड़ी मात्रा में बर्बाद हुई (मुझे पता है, आप अपने फैंसी 48 बिट मशीनों पर ध्यान नहीं देते ...))। मैं यह भी अनुमान लगाता हूं कि JVM (EE एप्लिकेशन सर्वर, OSGi) के अंदर छोटे ऑपरेटिंग सिस्टम के निर्माण के विभिन्न दु: खद प्रयास कम से कम आंशिक रूप से इस परिस्थिति को दोष देने के लिए हैं, क्योंकि सिस्टम पर कई जावा प्रक्रियाओं को चलाने से व्यर्थ संसाधनों का नुकसान होता है जो आपको करना पड़ता है उनमें से प्रत्येक को वह चरम पर उपयोग करने की स्मृति दे सकते हैं।
हैरानी की बात है कि, Google ने इस पर नाराजगी के तूफानों का उत्पादन नहीं किया, जिसकी मुझे उम्मीद थी, लेकिन वे शायद लाखों लोगों को निश्चित हीप आकार के बारे में पता लगाने और केवल एक तथ्य के लिए इसे स्वीकार करने के तहत दफन हो गए।