использование await на стороне сервера - PullRequest
1 голос
/ 12 мая 2011

Я знаю, что асинхронная библиотека действительно облегчает реализацию асинхронных операций, когда вы имеете дело с пользовательским интерфейсом.Но я не вижу каких-либо использования на стороне сервера, где это может улучшить производительность.В каких серверных сценариях можно использовать await для повышения производительности?

Ответы [ 2 ]

3 голосов
/ 28 мая 2011

Async особенно полезен в сетевых сценариях, поскольку обмен данными между серверами редко происходит без задержек.Выполнение запроса к другому веб-серверу (другому уровню, стороннему REST-сервису) или даже запрос к базе данных обычно выполняются с помощью блокирующих вызовов, которые не позволяют текущему потоку выполнять какую-либо работу до завершения удаленного вызова.Благодаря возможности await удаленного вызова ваш текущий поток освобождается для обработки других запросов, уменьшая нагрузку на память (IIS использует 256 КБ стекового пространства на поток) и увеличивая потенциальные нагрузки (больше параллельных задач может выполняться до того, как вы закончитепотоков).

Большая часть базовой сантехники ASP.NET использует IHttpHandler вместо IHttpAsyncHandler, что означает, что она предполагает поведение блокировки, но в ASP.NET возможно использование асинхронности.

2 голосов
/ 18 мая 2011

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

...