Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.AddOrUpdate方法在C#中的效率如何?_C#_Dictionary_Key - Fatal编程技术网

.AddOrUpdate方法在C#中的效率如何?

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

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

如果你说的是
ConcurrentDictionary.AddOrUpdate()
,性能将取决于几个因素

字典是作为泛型实现的。因此,单线程场景中的平均插入将以恒定时间运行,该恒定时间取决于加载因子和用于散列键的函数的质量


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

好吧,这大概是
concurrentdirectionary
,而不仅仅是
Dictionary
,对吗?这很容易影响事情。特别是,您使用的线程数可能会改变结果。您制定了绩效要求了吗?