ASP.NET1.1和ASP.NET2.0中ViewState的效能對比

來源:互聯網
上載者:User

在ASP.NET1.1中,為了提高效能,相信很多程式員都會關閉頁面中的ViewState,但是ViewState的好處也是不言而喻的。好在ASP.NET2.0對ViewState的效能有了很大的改進。下面讓我們做一個簡單的實驗,同時在ASP.NET1.1頁面和ASP.NET2.0頁面中只放一個Calendar控制項。頁面載入後比較ViewState的值:
ASP.NET1.1:
dDwtMTg1NDkwMjc0Nzs7Pl12VFm8r/3KAR2G8pAi4CBwTh7U

ASP.NET2.0:
/wEPDwULLTEzNjg5MjAxMzhkZM3POpW3dbRaQefygzI077pRcrTT

怎麼ASP.NET2.0比ASP.NET1.1的還長呢?別急,看看Postback之後的值變化:
ASP.NET1.1:
dDwtMTg1NDkwMjc0Nzt0PDtsPGk8MT47PjtsPHQ8O2w8aTwxPjs+
O2w8dDxAMDxwPHA8bDxTRDs+O2w8bDxTeXN0ZW0uRGF0ZVR
pbWUsIG1zY29ybGliLCBWZXJzaW9uPTEuMC41MDAwLjAsIEN
1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVj
NTYxOTM0ZTA4OTwyMDA2LTA3LTEzPjs+Oz4+Oz47Ozs7Ozs7
Ozs7Pjs7Pjs+Pjs+Pjs+9eOkIaZE+12gW74Bc8StBZYa2k4=

ASP.NET2.0:
/wEPDwULLTEzNjg5MjAxMzgPZBYCAgMPZBYCAgEPPCsACgEADx
YCHgJTRBYBBgCAlGndeMgIZGRkk9cH1OOEfjnO+6Uh0IKI2SfSHcU=

很明顯2.0中的ViewState值比1.0中縮減了不少,這樣的話對效能會有一個很大的提升。原因很簡單,在1.1中使用LosFormatter序列化ViewState資料,而2.0中使用了一個專門的類ObjectStateFormatter序列化和還原序列化ViewState資料。LosFormatter是使用TextWriter的,而ObjectStateFormatter是使用BinaryWriter的,這就使得2.0中用bytes保持ViewState而不是像1.1中使用string保持。舉一個例子:一個整型變數在1.1中需要4個bytes的ViewState資料,而在2.0中只要1個byte。

關於ObjectStateFormatter參考:
http://msdn2.microsoft.com/zh-cn/library/system.web.ui.objectstateformatter.aspx

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.