Каковы инструкции для Параллели. ForEach по сравнению с foreach?

Мне любопытно на предмет рабочих характеристик Параллели. ForEach. Учитывая любую допустимую конструкцию в Параллели. Цикл foreach, всегда это предпочтительный для использования Параллели. ForEach по циклу foreach? Я конкретно задаюсь вопросом об издержках вызова библиотеки Parallel Tasks по маленьким наборам или другим пограничным случаям, где цикл foreach мог бы быть быстрее. Я знаю, что библиотека довольно умна о том, когда/как метать икру, потоки... являются там случаями, где это лучше просто оставить код в цикле foreach или является издержками для вызова Параллельных Задач обычно negligble, поэтому если Вы можете, необходимо использовать Параллель. ForEach?

Этот вопрос подобен и предоставляет хорошую информацию о функциональном различии, но действительно не говорит с производительностью. Обратите внимание, что я игнорирую совместимость к.NET <4 как причина пребывания с foreach:

C#: Какое-либо преимущество .ForEach Списка (...) по простому циклу foreach?

9
задан Community 23 May 2017 в 10:27
поделиться

2 ответа

Это не всегда предпочтительнее. Для тел быстрого цикла Parallel.ForEach может снизить производительность. Одно из указаний, перечисленных в Руководстве по программированию параллельного программирования , состоит в том, чтобы измерить как до, так и после распараллеливания.

Другие полезные статьи были опубликованы группой параллельных вычислений .

11
ответ дан 4 December 2019 в 15:12
поделиться

Я бы сказал, что всегда следует придерживаться простого (например, обычного foreach) и реализовывать более сложные вещи (например, Parallel ForEach) только тогда, когда у вас есть измеримые требования к выполнению так. Поэтому, если вы можете доказать, что в конкретном случае нормальный foreach не так быстро, как вам нужно, и вы можете доказать для этого конкретного экземпляра, что Parallel foreach решит вашу проблему, тогда используйте Parallel.

В противном случае просто.

2
ответ дан 4 December 2019 в 15:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: