Точно, что такое PLINQ?

Мы используем технику, одолженную от этого URL http://www.codeproject.com/KB/aspnet/10ASPNetPerformance.aspx, не для регулировки, а для Отказа в обслуживании бедного человека (D.O.S). Это также основано на кэше, и может быть подобно тому, что Вы делаете. Вы регулируете для предотвращения нападений D.O.S.? Маршрутизаторы могут, конечно, использоваться для сокращения D.O.S; Вы думаете, что маршрутизатор мог обработать регулировку, Вам нужно?

40
задан Rap 27 September 2012 в 22:50
поделиться

5 ответов

Это параллельный LINQ. Это способ выполнять запросы LINQ параллельно в многоядерных / многопроцессорных системах, чтобы (надеюсь) их ускорить.

Есть хорошая статья по этому поводу в MSDN Magazine .

Чтобы узнать текущие подробности и планы, я рекомендую прочитать статьи в блоге группы Параллельное программирование с .NET . Это команда, реализующая параллельные расширения, включая PLINQ.

37
ответ дан 27 November 2019 в 01:42
поделиться

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

10
ответ дан 27 November 2019 в 01:42
поделиться

Позволяет добавлять. AsParallel к вашему LINQ, чтобы попытаться выполнить запрос, используя как можно больше процессоров. Неплохо, но вам все же нужно немного знать, является ли ваш алгоритм «параллелизируемым» - это не волшебство.

Это в основном устраняет необходимость в управлении пулом потоков и управляет синхронизацией результатов, возвращаемых каждым потоком - обычно без библиотеки параллельных расширений вам придется делать это вручную.

3
ответ дан 27 November 2019 в 01:42
поделиться

Из Parallel Extensions Википедии:

Параллельный LINQ (PLINQ) - это механизм параллельного выполнения запросов для LINQ, распараллеливающий выполнение запросов к объектам (LINQ to Objects) и данным XML (LINQ to XML). PLINQ предназначен для выявления параллелизма данных с помощью запросов. PLINQ может распараллелить любые вычисления над объектами, реализованные как запросы. Однако объекты должны реализовывать интерфейс IParallelEnumerable, который определяется самим PLINQ. Внутренне он использует для выполнения TPL.

1
ответ дан 27 November 2019 в 01:42
поделиться

PLINQ - это LINQ, выполняемый параллельно, то есть с использованием той же вычислительной мощности, что и на вашем текущем компьютере.

Если у вас есть компьютер с 2 ядрами, например, двухъядерный процессор, вы заставят ваши операторы Language Integrated Query выполнять работу параллельно, используя оба ядра.

Используя «только» LINQ, вы не получите такой высокой производительности, потому что стандартные операторы Language Integrated Query не будут распараллеливать ваш код. Это означает, что ваш код будет выполняться последовательно, не используя все ваши доступные ядра процессора.

Существует множество операторов запросов PLINQ, способных выполнять ваш код с использованием хорошо известных параллельных шаблонов.

Взгляните на мой блог сообщение, в котором я показываю ускорение, которое вы получаете, когда запускаете простой запрос LINQ в Parallel с использованием метода расширения AsParallel:

Параллельный LINQ (PLINQ) с Visual Studio 2010/2012 - Perf-тестирование

Если вы хотите углубиться в использование PLINQ, я советую вам прочитать:

Шаблоны для параллельного программирования: понимание и применение параллельных шаблонов с .NET Framework 4

15
ответ дан 27 November 2019 в 01:42
поделиться
Другие вопросы по тегам:

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