2016-08-12 23 views
5

में मेमोरी उपयोग की सीमा मैं अपने प्रोजेक्ट में IMemoryCache का उपयोग करता हूं। मुझे आश्चर्य है कि क्या होगा यदि मेरा ऐप कैश में कई लंबी जीवित वस्तुओं को धक्का दे। क्या यह सभी उपलब्ध स्मृति पर कब्जा कर सकता है? क्या मैं ऐप के लिए अधिकतम मेमोरी को वैश्विक रूप से परिभाषित कर सकता हूं?Asp.net कोर

उत्तर

2

यह एक साल पहले लिखा गया था इसलिए मुझे लगता है कि आप Microsoft.Extensions.Caching.Memory पैकेज के v1.x.x का उपयोग कर रहे हैं।

चूंकि MemoryCacheOptionsv2.x.x में v2.x.x की तरह नहीं है, तो थोड़ी देर के लिए कोड में चारों ओर खोदने के बाद मुझे दस्तावेज़ों की निम्नलिखित पंक्ति मिली।

https://github.com/aspnet/Caching/blob/rel/1.1.2/src/Microsoft.Extensions.Caching.Memory/MemoryCache.cs#L329

/// This is called after a Gen2 garbage collection. We assume this means there was memory pressure. 
/// Remove at least 10% of the total entries (or estimated memory?). 

इस प्रकार पैकेज के रूप में ज्यादा के रूप में स्मृति OS आपका कोड है करने की अनुमति देगा खा जाएगा। जब यह उस सीमा तक पहुंच जाए तो यह कैश प्रविष्टियों को कॉम्पैक्टिंग (बेदखल कर देगा) शुरू कर देगा।

आप सीमा मैन्युअल SizeLimit संपत्ति का उपयोग कर सेट कर सकते हैं और आप भी जब सीमा CompactionPercentage मारा जाता है संघनन की राशि निर्धारित कर सकते हैं v2.x.x साथ

+0

क्या आकार सीमा का मतलब बाइट्स में आकार है? – Makla