我有一个非常定期查询数据库的应用程序。它返回多达数百万个字符串,其中绝大多数是 bieng 重复。我需要将所有这些记录存储在内存中,并试图最小化占用空间。
我目前的设计是在每个字符串上调用 GetHashCode(),然后存储哈希而不是字符串本身。
然后我尝试将其添加到Dictionary<hashcode,string>()
结构中。我还保留了第二个字典,Dictionary<hashcode,count>()
随着更多条目使用该字符串,该字典将递增\递减。
在条目处理方法中,我递减计数器,如果使用量降至零,则从字典中删除字符串。
所以,有几个问题:
这是愚蠢的差事吗?是否有一些我可以使用的数据类型可以比与这个巨头合作节省大量时间\精力?
我希望我的字符串表是线程安全的(目前不是)。使用 ConcurrentDictinary 是我最好的选择吗?
提前致谢。