我正在寻找IDictionary的实现,并且具有更好的标准BCL性能。
我正在寻找具有恒定查找时间的东西,它可以很好地处理大量元素(> 10K)并且更加GC友好。
Ps:不,我不能自己写一个:)
答案 0 :(得分:7)
BCL词典已经以摊销的常数时间执行,可以轻松处理10K元素。
你说它应该是“更加GC友好” - 你当前的版本有什么困扰?
您是否经常向字典中添加元素?如果是这样,请使用较大的初始容量创建它以避免流失。
答案 1 :(得分:2)
我无法对实施进行基准测试,但哥本哈根大学提供了另一种 - 更全面 - 的通用集合类选择:
http://www.itu.dk/research/c5/
它们提供了许多通用的Dictionary实现,它们具有不同的后备解决方案(Trees,HashTables等)。可能其中一个适合您的需求。性能是该类库开发的主要因素。
当然,我建议您首先尝试BCL通用词典类,因为它可以节省您的时间并且可以很好地满足您的性能要求。
答案 2 :(得分:2)
我认为你很难找到一个比BCL更快的托管字典。我试图写一个,我很快发现它与你在平衡读/写性能时的速度一样快。