我正在使用这种方法来更新字典对象,并想知道它的性能到底是什么 - 它是恒定时间还是存在对kvp(键值对)数量的依赖性?有没有人知道使用这种方法更新字典的性能。
答案 0 :(得分:1)
如果你在谈论ConcurrentDictionary.AddOrUpdate()
,表现将取决于几个因素。
字典实现为通用hashtable。因此,单线程场景中的平均插入将在恒定时间内运行,常量取决于负载因子和用于散列键的函数的质量。
在多线程情况下,插入时间可能与写入冲突的概率密切相关,即2个线程同时尝试写入字典的可能性。后者与使用数据结构的线程数和写操作频率成正比。