Возможно ли выполнить параллельную обработку в ASP.NET 4? - PullRequest
0 голосов
/ 19 февраля 2011

Я хотел бы спросить вас, возможно ли использовать параллельное программирование в ASP.NET 4? Например, PLINQ.

(поскольку все хост-серверы теперь являются многоядерными, и это даст лучшую производительность?)

Ответы [ 2 ]

2 голосов
/ 19 февраля 2011

Да, это возможно. Но в сомнении это имеет смысл в большинстве случаев. ASP.NET уже сильно распараллелен, так как каждый запрос работает в своем собственном потоке. Если вы раскручиваете другие потоки для выполнения некоторой работы, это может привести к накладным расходам. Эти издержки замедляют работу других потоков над другими запросами. Опять же, вы будете вносить дополнительные издержки при синхронизации результатов для завершения запроса. Кроме того, эти издержки, вероятно, замедляют время, необходимое для ответа на запрос.

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

Конечно, только стресс-тесты с обоими подходами позволят убедиться, что более эффективно использовать PLINQ или не использовать его.

1 голос
/ 19 февраля 2011

Ответ ДА.

Почему вы думаете иначе?(Отсюда и саркастические комментарии.)

Обратите внимание: если вы не предпримете специальных шагов, каждый HTTP-запрос должен быть выполнен в потоке, который начинает его обслуживать.Специальные шаги включают в себя указание ASP.NET использовать асинхронную обработку для страниц, которая позволяет создать ответ и выполнить запрос в других потоках (возможно, с промежуточной обработкой других потоков).Если вы используете TPL (включая PLINQ) из исходного потока запроса, это не проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...