2010-09-15 6 views
0

Я использую HTTP-обработчик для подгрузки файла. Базовый код в «ProcessRequest» извлекает данные из базы данных, создает временную копию существующей таблицы шаблонов с идентификатором GUID в качестве ее имени и записывает данные извлекается из базы данных в ячейку по ячейке с помощью COM, загружает файл и удаляет временную электронную таблицу. Весь этот процесс обычно занимает около 4-5 минут. Но когда мы пытались параллельно протестировать этот процесс, потребовалось около 15 минут.Настройка свойства HTTPHandler isreusable

Мне интересно, может ли установка «IsReusable» логическое значение true может помочь улучшить производительность. Но я не уверен, если это безопасно.

Не могли бы вы помочь мне с этим?

** Обновление: ** Потому что я использую другое имя файла для каждого из созданных временных файлов. Я предполагаю, что проблем не будет. Но все равно не уверен.

ответ

4

Недвижимость IsReusable будет делать то, что вы думаете. Вместо того, чтобы создавать новый Handler, который будет использоваться каждый раз, когда будет выполнен запрос, он будет повторно использовать существующий. Если у вас есть переменные экземпляра, которые создаются в конструкторе, это может повысить производительность, но только если они дороги для создания.

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

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

1

Свойство IsReusable имеет значение true, если ожидается, что этот экземпляр HttpHandler обрабатывает несколько запросов. Там может другой параметр Web.Config, затрагивающая проблему, возможно, атрибут ExecutionTimeout свойства httpRuntime:

<httpRuntime appRequestQueueLimit="100" executionTimeout="600" /> 

Подробнее:

http://articles.sitepoint.com/article/web-config-file-demystified

Смежные вопросы