Есть
var list = new List<Guid>();
Нужно его заполнить миллиардом значений.
for (int i = 0; i < 1000000000; i++)
list.Add(Guid.NewGuid());
отрабатывает за 6,5 минут съедая где-то 17 гиг памяти.
int j = 0;
Parallel.For(
0, 1000000000, new ParallelOptions { MaxDegreeOfParallelism = 2 }, (j) =>
{
list.Add(Guid.NewGuid());
}
);
Вешает машину в процессе работы, но это ладно. Съедает 50 с чем-то гиг и падает через 3-4 минуты по OutOfMemory.
Почему он ест столько памяти? Объем памяти то должен быть один и тот же.