.AddOrUpdate方法在C#中的效率如何?
我正在使用这种方法更新字典对象,并想知道它的性能到底是什么——它是常数时间还是会依赖于存储的kvp(键值对)的数量?有人知道用这种方法更新字典的性能吗。如果你说的是.AddOrUpdate方法在C#中的效率如何?,c#,dictionary,key,C#,Dictionary,Key,我正在使用这种方法更新字典对象,并想知道它的性能到底是什么——它是常数时间还是会依赖于存储的kvp(键值对)的数量?有人知道用这种方法更新字典的性能吗。如果你说的是ConcurrentDictionary.AddOrUpdate(),性能将取决于几个因素 字典是作为泛型实现的。因此,单线程场景中的平均插入将以恒定时间运行,该恒定时间取决于加载因子和用于散列键的函数的质量 在多线程情况下,插入时间可能与写入冲突的概率密切相关,即两个线程同时尝试写入字典的可能性。后者与使用数据结构的线程数和写入操作
ConcurrentDictionary.AddOrUpdate()
,性能将取决于几个因素
字典是作为泛型实现的。因此,单线程场景中的平均插入将以恒定时间运行,该恒定时间取决于加载因子和用于散列键的函数的质量
在多线程情况下,插入时间可能与写入冲突的概率密切相关,即两个线程同时尝试写入字典的可能性。后者与使用数据结构的线程数和写入操作的频率成正比。好吧,这大概是
concurrentdirectionary
,而不仅仅是Dictionary
,对吗?这很容易影响事情。特别是,您使用的线程数可能会改变结果。您制定了绩效要求了吗?