我没有看到使用以下代码处理速度的任何改进:
IEnumerable<Quote> sortedQuotes = (from x in unsortedQuotes.AsParallel()
orderby (x.DateTimeTicks)
select x);
在顺序版本上:
IEnumerable<Quote> sortedQuotes = (from x in unsortedQuotes
orderby (x.DateTimeTicks)
select x);
我在这里遗漏了什么吗?我将源集合中的项目数量从数千个变为数千万个,并且没有大小显示并行版本即将发布。
任何提示赞赏。顺便说一句,如果有人知道更快速的排序方式(给定我指定的项目变量类型(包含项目在集合中排序的长DateTimeTicks),这也是值得欣赏的。
编辑:“有效排序” - &gt;尽可能快地。
由于
答案 0 :(得分:6)
根据this page,
如果你的查询中有一个排序,那么将使用stop-and-go代替,因为对排序的输出进行流水线操作是浪费的。排序表现出极高的延迟[...],因此PLINQ更愿意将所有处理能力用于尽快完成排序。
您的查询仅包含排序,选择不计算。因此PLINQ引擎将按顺序执行它。
当排序是较大查询的一部分时,您只能期待一些改进。