Еще одна проблема с ConcurrentDictionary (в настоящее время) и использованием его конструктора для установки начального размера заключается в том, что его производительность, как представляется, ограничена.
Например, вот пример кода и тесты Я попробовал.
Я запустил код на моей машине и получил похожие результаты.
То есть, когда указан начальный размер, он ничего не делает для увеличения скорости ConcurrentDictionary при добавлении объектов. Технически, я думаю, что должно , потому что не требуется времени или ресурсов, чтобы изменить свой размер.
Да, он может работать не так быстро, как обычный словарь, но я все же ожидал бы, что ConcurrentDictionary с его начальным установленным размером будет иметь согласованную, более высокую производительность, чем ConcurrentDictionary, у которого не установлен начальный размер, особенно если заранее знает количество предметов, которые будут добавлены к нему.
Так что мораль этой истории - установление начального размера не всегда гарантирует улучшение производительности.