Pab*_*lla 6 c# out-of-memory plinq .net-4.5
升级到DotNet 4.5后,一个查询开始给我OutOfMemoryExceptions.
(提炼)查询是:
var tests = new int[]{}
.AsParallel()
.GroupBy(_ => _)
.Take(int.MaxValue)
.ToArray();
Run Code Online (Sandbox Code Playgroud)
我发布这个给同样问题的人.我将在下面回答.
这似乎是框架的一个变化.
Take()运算符在TakeOrSkipQueryOperator内部类中实现.代码中有一个分支通过WrapHelper()函数创建一个FixedMapHeap实例,该实例又创建了一个Key元素数组,该元素的大小最初传递给Take()(在给定的示例中,它将是一个8Gb的数组) ).
| 归档时间: |
|
| 查看次数: |
177 次 |
| 最近记录: |