पर आधारित आकार को सीमित करता है, मैं एक लिंकड हैशैप बनाना चाहता हूं जो उपलब्ध स्मृति के आधार पर अपना आकार सीमित कर देगा (यानी freeMemory + (maxMemory - allocatedMemory)
एक निश्चित दहलीज से नीचे हो जाता है)। इसका उपयोग कैश के रूप में किया जाएगा, संभवतः "कम से कम हाल ही में उपयोग" को कैशिंग रणनीति के रूप में उपयोग किया जा रहा है।एलआरयू लिंक्ड हैशैप जो उपलब्ध स्मृति
मेरी चिंता हालांकि आवंटित स्मृति में भी शामिल है (मुझे लगता है) गैर-कचरा एकत्रित डेटा, और इस प्रकार उपयोग की गई स्मृति की मात्रा का अधिक अनुमान लगाएगा। मैं इसके अनपेक्षित परिणामों के बारे में चिंतित हूं।
उदाहरण के लिए, लिंक्ड हैशैप आइटम को हटा सकता है क्योंकि ऐसा लगता है कि पर्याप्त मुफ्त मेमोरी नहीं है, लेकिन मुफ्त मेमोरी में वृद्धि नहीं होती है क्योंकि इन हटाए गए आइटम तुरंत कचरा नहीं होते हैं।
क्या किसी को इस तरह की चीज़ के साथ कोई अनुभव है? क्या मेरी चिंता जरूरी है? यदि हां, तो क्या कोई अच्छा दृष्टिकोण सुझा सकता है?
मुझे यह जोड़ना चाहिए कि मैं भी कैश को "लॉक" करने में सक्षम होना चाहता हूं, मूल रूप से "ठीक है, अब से स्मृति उपयोग समस्याओं के कारण कुछ भी हटाएं"।
आपका आवेदन यहां क्या है? पृष्ठभूमि के इरादे के बारे में एक विचार के बिना एक अच्छा जवाब के साथ आना मुश्किल है। क्या आपका हैश मैप कैश है या क्या? – jprete
jprete, मैंने इसे स्पष्ट करने की कोशिश की है - आप सही हैं, यह एक कैश – sanity
यह एक सामान्य उदाहरण है जहां जीसी और जावा मेमोरी प्रबंधन अपने असली गन्दा चेहरे को दिखाता है। सी ++ में ऐसी चीज करने के लिए * इतना आसान * होगा। जीसी का उपयोग करके, आप डिलीट या फ्री जैसे कमांड निष्पादित नहीं कर सकते हैं। –