Конец SaveStateComplete - Почему может быть так много времени? - PullRequest
1 голос
/ 20 ноября 2011

Что делает эта часть?Особенно, почему это отнимает много времени, если у меня нет ViewState и большой граф объектов?Иногда это может занимать 3-ю скорость запроса.

Обнаружено, что эта проблема возникает только на сервере разработки.

Ответы [ 2 ]

0 голосов
/ 13 декабря 2011

Я также заметил, что этот этап сравнительно дорог даже без ViewState (даже с почти пустой страницей)

Мне удалось значительно ускорить этот этап, запустив мой проект на локальном экземпляре IIS, а не на веб-сервере разработки Visual Studio. Компиляция в режиме выпуска по сравнению с режимом отладки, похоже, также принесла незначительное улучшение.

Я предполагаю, что 1) не о чем беспокоиться и 2) веб-сервер VS может быть менее оптимизирован, чем IIS, для некоторой части процесса. Например, IIS может кэшировать машинные значения (такие как параметры реестра, сертификаты и т. Д.), А веб-сервер VS - нет.

Если во время SaveStateComplete запускается процедура шифрования (например, когда EnableViewStateMac="true"), вызов на ресурсы локального компьютера может быть намного дороже при выполнении на веб-сервере VS, даже если на самом деле ничего не шифруется.

Я не считаю это хорошим ответом; если вы действительно обеспокоены, вы можете профилировать ASP.NET, чтобы увидеть, что он на самом деле делает (например, какие методы BCL вызываются).

0 голосов
/ 12 декабря 2011

роль SaveStateComplete заключается в сохранении viewstate / controlstate control до его рендеринга.Таким образом, если вы не отключили viewsate (EnableViewState = "false" на уровне страницы) для своей страницы / элементов управления, работа всегда выполняется.Кроме того, отключение viewstate не отключает controlstate.У вас есть много элементов управления на вашей странице?

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