Parallel.For и память
От: BlackEric http://black-eric.lj.ru
Дата: 28.11.20 11:37
Оценка:
Есть
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.

Почему он ест столько памяти? Объем памяти то должен быть один и тот же.
https://github.com/BlackEric001
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.