2014-03-31 40 views
0

我正在使用這種方法來更新字典對象,並想知道它的性能究竟是什麼 - 它是恆定的時間還是會存儲一些kvp(鍵值對)的依賴關係?有沒有人有任何想法用這種方法更新字典的性能。。C#中的AddOrUpdate方法效率如何?

+0

大概這是'ConcurrentDictionary',不只是'Dictionary',對吧?這很容易影響事情。特別是,您使用的線程數量可能會改變結果。你有沒有制定出你的表現要求? –

回答

1

如果你正在談論ConcurrentDictionary.AddOrUpdate(),性能取決於幾個因素。

該字典實現爲通用hashtable。因此,單線程場景中的平均插入將在恆定時間內運行,常數取決於負載因子和用於散列密鑰的函數的質量。

在多線程的情況下,插入時間可能變得與寫衝突的概率密切相關,即兩個線程同時嘗試寫字典的可能性。後者與使用數據結構的線程數量和寫操作的頻率成正比。