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) –