我正在使用字典来存储数据,并将其缓存。 我希望通过限制字典<>的大小(无论是大小还是条目数),以避免服务器内存问题,并获得良好的性能。
最佳方法是什么?是否应该考虑其他类而不是字典?
我正在使用字典来存储数据,并将其缓存。 我希望通过限制字典<>的大小(无论是大小还是条目数),以避免服务器内存问题,并获得良好的性能。
最佳方法是什么?是否应该考虑其他类而不是字典?
为了实现良好的性能,您不需要限制字典的大小。
正如文档所说:
使用键检索值非常快,接近于O(1)
除了上述类之外,您还可以选择其他类,例如
您可以通过查看System.Collections.Generic命名空间来查看选项。
有一篇非常好的文章在MSDN上描述了大多数集合类的优缺点
如果您不满意这些类所提供的内容,则可以选择自己的集合类或设计自己的自定义字典
。
您需要从IDictionary接口继承自定义字典,并编写其他类/接口或完全从头编写。
以下是MSDN上Dictionary class的签名。
[SerializableAttribute]
[ComVisibleAttribute(false)]
public class Dictionary<TKey, TValue> : IDictionary<TKey, TValue>,
ICollection<KeyValuePair<TKey, TValue>>,
IEnumerable<KeyValuePair<TKey, TValue>>,
IDictionary, ICollection, IEnumerable,
ISerializable, IDeserializationCallback
没有过期策略的缓存就像内存泄漏一样。
(抱歉,由于我不知道谁最先说过这句话,所以未标明出处。)