7
MemoryCache ไม่เป็นไปตามขีด จำกัด หน่วยความจำในการกำหนดค่า
ฉันกำลังทำงานกับคลาส. NET 4.0 MemoryCacheในแอปพลิเคชันและพยายาม จำกัด ขนาดแคชสูงสุด แต่ในการทดสอบของฉันไม่ปรากฏว่าแคชเป็นไปตามขีด จำกัด ฉันใช้การตั้งค่าซึ่งตาม MSDNควร จำกัด ขนาดแคช: CacheMemoryLimitMegabytes : ขนาดหน่วยความจำสูงสุดเป็นเมกะไบต์ที่อินสแตนซ์ของวัตถุสามารถขยายได้ " PhysicalMemoryLimitPercentage : "เปอร์เซ็นต์ของหน่วยความจำฟิสิคัลที่แคชสามารถใช้ได้แสดงเป็นค่าจำนวนเต็มตั้งแต่ 1 ถึง 100 ค่าดีฟอลต์คือศูนย์ซึ่งบ่งชี้ว่าอินสแตนซ์ MemoryCacheจัดการหน่วยความจำ 1ของตนเองตามจำนวนหน่วยความจำที่ติดตั้งบน คอมพิวเตอร์." 1.สิ่งนี้ไม่ถูกต้องทั้งหมด - ค่าใด ๆ ที่ต่ำกว่า 4 จะถูกละเว้นและแทนที่ด้วย 4 ฉันเข้าใจว่าค่าเหล่านี้เป็นค่าโดยประมาณและไม่ใช่ข้อ จำกัด อย่างหนักเนื่องจากเธรดที่ล้างแคชจะเริ่มทำงานทุกๆ x วินาทีและยังขึ้นอยู่กับช่วงเวลาการสำรวจและตัวแปรอื่น ๆ ที่ไม่มีเอกสาร อย่างไรก็ตามแม้จะคำนึงถึงความแปรปรวนเหล่านี้ แต่ฉันก็เห็นขนาดแคชที่ไม่สอดคล้องกันอย่างมากเมื่อรายการแรกถูกขับออกจากแคชหลังจากตั้งค่าCacheMemoryLimitMegabytes และPhysicalMemoryLimitPercentageร่วมกันหรือเอกพจน์ในแอปทดสอบ เพื่อให้แน่ใจว่าฉันทำการทดสอบแต่ละครั้ง 10 ครั้งและคำนวณตัวเลขเฉลี่ย นี่คือผลลัพธ์ของการทดสอบโค้ดตัวอย่างด้านล่างบนพีซี Windows 7 …
87
c#
.net
caching
memorycache