我在字典中保存了一个带有值的大缓存IEnumerable<KeyValuePair<DateTime, Double>>
。我定期从字典中删除项目,并定期向字典添加项目。我时不时地收到 System.OutOfMemoryException。我想知道为什么垃圾收集器不来救我?
请记住,正如 @Gabe 提到的那样,堆可能会变得碎片化。即使您可能有空闲内存,它也可能没有足够大的块来在执行调整大小时分配字典。
也许您可以使用模式和实践库中的缓存块MSDN 库链接这将帮助您实现良好的缓存。也许您可以选择一种不动态分配内存、具有固定数量条目的算法?
另请注意,如果没有任何可以使用的内存,那么这是缓存大小的问题,而不是垃圾收集器的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)