Должен ли я использовать HttpResponse.End () для быстрого веб-приложения? - PullRequest
0 голосов
/ 31 мая 2010

HttpResponse.End () , кажется, выдает исключение в соответствии с msdn. Прямо сейчас у меня есть выбор возврата значения, чтобы сказать конец потока (это только 2 функции) или я могу вызвать end ().

Я знаю, что создание исключений значительно медленнее (см. Комментарий к тесту C # /. NET), поэтому, если я хочу быстрое веб-приложение, стоит ли не вызывать его, когда его тривиально легко не вызвать это?

-edit- У меня есть вызов функции в определенных функциях и в конструкторе в классах, чтобы гарантировать, что пользователь вошел в систему. Поэтому я вызываю HttpResponse.End () в достаточном количестве мест, хотя, надеюсь, при обычном использовании сайта это не так происходят слишком часто.

Ответы [ 2 ]

2 голосов
/ 31 мая 2010

Просто используйте Response.End. Напишите свой код для удобства обслуживания, прежде чем писать его для производительности.

Кроме того, показатель производительности, который имеет значение для веб-приложений, - это масштабируемость. То есть вы должны задавать вопрос не «как быстро я могу обработать этот единственный запрос», а как «сколько запросов я могу обработать одновременно?».

Исключения не влияют на вашу масштабируемость, и в общей схеме дополнительная пара микросекунд на один запрос - ничто: помните, что при приеме туда и обратно по сети будет не менее 50 миллисекунд: еще 100 микросекунд это шум.

2 голосов
/ 31 мая 2010

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

Примечание. Это исключение не всегда выдается при вызове Response.End, только когда вы преждевременно завершаете запрос.

...