2011-07-15 21 views
5

MemoryCache.net में कक्षा को वस्तुओं को बेदखल करना माना जाता है जब भी यह स्मृति की मात्रा कुछ सीमा से अधिक हो जाती है।मेमोरी कैश कैसे जानता है कि यह कितनी मेमोरी का उपयोग करता है?

यह वास्तव में यह निर्धारित करता है कि इसकी वस्तुएं कितनी मेमोरी का उपयोग कर रही हैं?

उत्तर

4

MemoryCache में एक आंतरिक CacheMemoryMonitor है जो समय-समय पर इसके संदर्भों से पूछता है कि वे कितने बड़े हैं। यह SizedReference नामक mscorlib में एक आंतरिक प्रकार का उपयोग करता है जो एक संदर्भ है जो यह भी ट्रैक रखता है कि इसका लक्ष्य कितना मेमोरी (लगभग) उपयोग करता है।

यह जीसी से विभिन्न आंकड़े भी एकत्रित करता है ताकि पता लगाया जा सके कि स्मृति दबाव से इसे निष्कासन प्रक्रिया शुरू होनी चाहिए या नहीं।

+0

तो मूल रूप से इसका मतलब है कि 'मेमोरी कैश' में उस पूरे ऑब्जेक्ट ग्राफ़ में संग्रहीत (अच्छा?) विचार होगा, है ना? यह मानना ​​सुरक्षित है कि यह आंतरिक हैशटेबल की चाबियों से जुड़ी वस्तु संदर्भ आकार को जोड़ने के रूप में निष्पक्ष नहीं है, है ना? –

+0

तो ... .NET और CLR आंतरिक के बारे में जानने के बिना 'मेमोरी कैश' को कार्यान्वित करना असंभव है? – binki

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