【发布时间】:2016-02-15 18:30:27
【问题描述】:
前言:我问这个只是因为我没有一个环境(足够大的数据集 + 计算能力)来以可靠的方式对其进行测试。
问题:给定一个Concurrent Bag,加载了数十亿个项目,被单个线程访问/使用,它的性能是否类似于List?换句话说,Concurrent Bag 上的枚举是否比List<T> 上的性能更高或更低?
【问题讨论】:
-
您的基准测试结果让您得出什么结论?
-
@LucasTrzesniewski 我的基准测试没有定论,因为测试结果非常疯狂。正如问题中提到的,我的开发环境非常弱(仅 8gb ram 和 i3 处理器),我没有一个好的数据集来真正强调它......
-
您将如何访问该集合?你会一直列举它吗? (
ConcurrentBag<T>没有索引器。) -
@Douglas 包可以迭代,如
foreach -
如果您只打算从单个线程中使用它,为什么还要使用专门设计为可从多个线程访问的集合?另请注意,在不知道您实际使用该集合做什么的情况下,我们不可能回答这样的问题。
标签: c# .net concurrent-collections