Parallel Linq - kiedy używać?

Parallel Linq - kiedy używać?
WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:około 6 godzin
  • Postów:5141
0

Weźmy takiego koda

Kopiuj
Random rnd = new Random();

var pLINQ = Enumerable
                     .Range(0, 150000)
                     .Select(x => x = rnd.Next(50000))
                     .ToList();

pLINQ
    .Where(x => x%2 == 0 && x >= 5)
    .ToList();

pLINQ
    .AsParallel()
    .Where(x => x%2 == 0 && x >= 5)
    .ToList();

Kiedy powinno się używać asParallel? bo np. w tym przypadku jedynie nam spowalnia

edytowany 5x, ostatnio: WeiXiao
neves
  • Rejestracja:prawie 22 lata
  • Ostatnio:około 22 godziny
  • Lokalizacja:Kraków
  • Postów:1114
2

Tak naprawdę nie ma uniwersalnych zasad, można na wyczucie, ale i tak zawsze najlepiej zmierzyć i porównać wersje z równoległością i bez.

Dla takich prostych porównań które zajmują mało czasu, to żeby parrallel linqu było szybsze to trzeba mieć z ponad 10mln elementów.


edytowany 2x, ostatnio: neves

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.