C#中的AddAdOrUpdate方法效率如何?

时间:2014-03-31 09:29:55

标签: c# dictionary key

我正在使用这种方法来更新字典对象,并想知道它的性能到底是什么 - 它是恒定时间还是存在对kvp(键值对)数量的依赖性?有没有人知道使用这种方法更新字典的性能。

1 个答案:

答案 0 :(得分:1)

如果你在谈论ConcurrentDictionary.AddOrUpdate(),表现将取决于几个因素。

字典实现为通用hashtable。因此,单线程场景中的平均插入将在恒定时间内运行,常量取决于负载因子和用于散列键的函数的质量。

在多线程情况下,插入时间可能与写入冲突的概率密切相关,即2个线程同时尝试写入字典的可能性。后者与使用数据结构的线程数和写操作频率成正比。