Я также заметил, что этот этап сравнительно дорог даже без ViewState (даже с почти пустой страницей)
Мне удалось значительно ускорить этот этап, запустив мой проект на локальном экземпляре IIS, а не на веб-сервере разработки Visual Studio. Компиляция в режиме выпуска по сравнению с режимом отладки, похоже, также принесла незначительное улучшение.
Я предполагаю, что 1) не о чем беспокоиться и 2) веб-сервер VS может быть менее оптимизирован, чем IIS, для некоторой части процесса. Например, IIS может кэшировать машинные значения (такие как параметры реестра, сертификаты и т. Д.), А веб-сервер VS - нет.
Если во время SaveStateComplete запускается процедура шифрования (например, когда EnableViewStateMac="true"
), вызов на ресурсы локального компьютера может быть намного дороже при выполнении на веб-сервере VS, даже если на самом деле ничего не шифруется.
Я не считаю это хорошим ответом; если вы действительно обеспокоены, вы можете профилировать ASP.NET, чтобы увидеть, что он на самом деле делает (например, какие методы BCL вызываются).