【问题标题】:hash table memory usage for small number of items C#少量项目的哈希表内存使用C#
【发布时间】:2013-03-19 15:31:53
【问题描述】:

我想知道是否有很多小字典会因为涉及的开销而浪费内存。字典被实现为一个哈希表,所以如果我有数千个对象,每个对象都包含这些小字典,我最终不会浪费很多空间,而不是仅仅拥有一个我搜索的列表/二进制搜索树,特别是如果每个小字典只包含4-5个键值对?

我现在正在查看的代码是这样实现的,由于存在内存问题,我想知道将哈希表用于少量项目是多么浪费。除了列表/二叉搜索树,我还有哪些其他选择?

【问题讨论】:

  • 您是否使用分析器来证明瓶颈在哪里?这将大有帮助。

标签: c# memory dictionary hashtable


【解决方案1】:

如果您需要散列功能,您可以使用 hastable 而不是字典,如果不需要的话,一些轻量级集合也可以。你可以看看这个链接Dictionary vs Hashtable memory usage

【讨论】:

    【解决方案2】:

    当然,基准测试是查看性能与内存问题的最佳方法,但如果每个字典都那么小,请考虑 ListDictionaryHybridDictionary 类。对于小型词典,您肯定会看到性能优势,我怀疑您也会看到大小优势。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-08
      • 2012-10-22
      • 2015-03-02
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 2012-05-12
      相关资源
      最近更新 更多