代码之家  ›  专栏  ›  技术社区  ›  derek

C字典性能

  •  5
  • derek  · 技术社区  · 16 年前

    我正在使用字典存储数据,并将其缓存。我希望通过限制字典的大小来避免服务器内存问题,并获得良好的性能<>,条目的大小或数量。

    5 回复  |  直到 12 年前
        1
  •  2
  •   Asad    16 年前

    还有其他几个类可以从中选择,比如

    您可以通过查看 System.Collections.Generic 命名空间。

    如果您对这些类提供的内容不满意,您可以使用自己的集合类或设计一个 custom Dictionary 你自己。

    您将需要从IDictionary接口和其他类/接口继承自定义词典,或者可以从头开始编写。

    这是你的签名 Dictionary class 在MSDN

    [SerializableAttribute]
    [ComVisibleAttribute(false)]
    public class Dictionary<TKey, TValue> : IDictionary<TKey, TValue>, 
        ICollection<KeyValuePair<TKey, TValue>>,
        IEnumerable<KeyValuePair<TKey, TValue>>, 
        IDictionary, ICollection, IEnumerable,
        ISerializable, IDeserializationCallback
    
        2
  •  5
  •   Foxfire    16 年前

    你不需要限制字典的大小来保证良好的性能。

    正如文件所说:

    非常快,接近O(1)

        3
  •  1
  •   Malcolm Post    16 年前

    您需要从Dictionary类继承创建自己的类。重写Add和set Item方法以限制添加对象时的条目数。

        4
  •  1
  •   Curt Nichols    16 年前

    “没有过期策略的缓存只是内存泄漏。”

        5
  •  0
  •   Nelson Rothermel    16 年前

    需要记住的一点是,初始化字典时可以设置初始容量。如果你知道你的列表有多大,把它设置为正确的大小,你就不会有任何“浪费”的空间。如果不指定容量,它将设置默认的起始容量,并根据需要调整大小/增长,这会影响性能。

    推荐文章