dot net的MemoryCache驅逐何時發生?我如何模擬控制檯應用程序中的驅逐?每當我嘗試將對象添加到內存緩存直到發生驅逐出現,我都會得到OutofMemoryException。Dot Net MemoryCache驅逐
4
A
回答
2
請參閱MemoryCacheElement
,如果您沒有將值傳遞給NameValueCollection config
in the constructor或者您使用默認實例,那麼這將控制默認行爲。
通過MemoryCacheElement
的默認設置,它會每隔兩分鐘檢查一次(但它的確會更快地執行the closer you are to the high pressure limit)。一旦進入timer's callback它將計算百分比來修剪掉MemoryCache,然後使用計算的百分比調用MemoryCache.Trim(Int32)
。
在the percentage calculation中有一點需要注意,如果沒有Gen 2垃圾收集發生,緩存不會嘗試收縮自身。
測試控制檯程序運行的方式很有可能會在第2代收集可能發生之前耗盡所有內存,或者仍然處於最初的兩分鐘慢速模式,以便在它可以清除之前檢查內存壓力項目了。
如果您想模擬驅逐就叫
MemoryCache.Default.Trim(50);
這就會收回一半的緩存從默認的緩存。
相關問題
- 1. MemoryCache意外驅逐在C#
- 2. .Net 4.0 MemoryCache清除
- 3. Dot Net Nuke Footer
- 4. 從L1緩存驅逐L2驅逐
- 5. Redis LRU驅逐,驅逐項目Persistance
- 6. Dot Net Nuke安裝
- 7. Dot net fortify掃描
- 8. 春Cache驅逐
- 9. Hazelcast驅逐更新
- 10. Couchbase - 數據驅逐
- 11. Hazelcast驅逐和MapStore
- 12. Memcache驅逐策略
- 13. Apache Ignite Cassandra驅逐
- 14. NHibernate驅逐編號
- 15. Infinispan驅逐策略
- 16. Angular Dot Net Core 2.0 Build Issue
- 17. Dot Net Core中的MultipartMemoryStream
- 18. clarifai api with dot net Web api
- 19. Dot Net 4.5沒有DataTable?
- 20. Spring Dot Net Remoting的優勢
- 21. Hazelcast如何驅逐出IMAP關於輸入hazelcast驅逐
- 22. dot net命令:net use - 如何獲取Alphabet和路徑名?
- 23. C#4.0的MemoryCache - 如何驅逐依賴緩存記錄更改時它們的依賴
- 24. Hazelcast 3.7驅逐算法
- 25. Memcache驅逐監控系統
- 26. JBossCache驅逐監聽器
- 27. EhCache:選擇驅逐策略
- 28. infinispan休眠緩存驅逐
- 29. 在java中驅逐類?
- 30. Midi-dot-net聲音播放兩次
[MemoryCache不符合配置中的內存限制]的可能重複(http://stackoverflow.com/questions/6895956/memorycache-does-not-obey-memory-limits-in-configuration) –