2014-10-31 58 views
0

我對MemoryCache和PhysicalMemoryLimit有疑問。MemoryCache和PhysicalMemoryLimit

例如:

我設置PhysicalMemoryLimit = 2

我有很多:

List<MyObject> myObject = new List<MyObject>(); 

爲MyObject可以有更個性化100000

我設置myObject的獨特的鍵緩存。

在某個時間緩存某個時候就會充實和

「如果高速緩存大小超過指定限制,內存緩存執行刪除緩存條目。」

但是在緩存滿了之前,對象之一是在foreach中長時間的使用和使用。當內存緩存實現刪除緩存條目時,這個對象會是什麼?

對不起,我的英文。

回答

0

內存中高速緩存保留與指定密鑰關聯的高速緩存對象的引用,以便在需要時使用,也不會由GC收集。

當高速緩存大小超過指定的限制時,刪除高速緩存條目意味着高速緩存不再保存對該對象的引用,以便可以將其置於下一個垃圾收集中。但是,如果該對象正在用戶的邏輯中使用,就像在你的foreach循環中一樣。它不會保留在緩存中,但會在用戶代碼中提供,直到引用。