Это хороший кандидат для использования асинхронных контроллеров в ASP.NET MVC - PullRequest
2 голосов
/ 21 июня 2011

Все изображения на моем сайте обслуживаются контроллером. Это действие проверяет, существует ли образ на диске и может ли он выполнять некоторые манипуляции (изменение размера и т. Д.).

Учитывая, что страница может содержать около 50 изображений, что приводит к 50 запросам, является ли это хорошим кандидатом для использования асинхронных контроллеров ASP.NET MVC?

1 Ответ

3 голосов
/ 21 июня 2011

Вы должны прочитать Измерение производительности асинхронных контроллеров сначала.

Из статьи

  • Асинхронные запросы полезны, но только , если вам нужно обрабатывать больше параллельных запросов, чем рабочих потоков.В противном случае синхронные запросы лучше использовать только потому, что они позволяют писать более простой код.
    (Существует исключение: ASP.NET динамически настраивает пул рабочих потоков между его минимальным и максимальным пределами размера, а также при внезапном всплеске трафикаЭто может занять несколько минут, чтобы заметить и создать новые рабочие потоки. В течение этого времени ваше приложение может иметь только несколько рабочих потоков, а время ожидания многих запросов истекло. Причина, по которой я постепенно корректировал уровень трафика в течение 30 минутпериод должен был дать ASP.NET достаточно времени для адаптации. Асинхронные запросы лучше, чем синхронные, обрабатывают внезапные всплески трафика, хотя в действительности такие всплески не случаются.)

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

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

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