2008年1月22日

UpdatePanel效能問題 - 從不同的角度來看它...

最近被一位朋友問到,UpdatePanel有人說他並沒有提升整體的執行效能與降低網路傳輸量,反而會因為一些特別的處理,而必須付出更多的代價...

http://www.blueshop.com.tw/board/show.asp?subcde=BRD2007052608421184N&fumcde=FUM200410061532262QU&rplcnt=8

http://msdn.microsoft.com/msdnmag/issues/07/06/WickedCode/default.aspx?loc=zx

對此看法,其實我抱持著懷疑的態度來看待,因為就使用者操作上來說,是有某種程度的速度感...
或許是因為畫面沒有閃爍的緣故吧?才讓我有這樣的"幻覺"...

不過...科學數據是會說話的...

我拿我的一個程式來做實驗...(用Fiddler來測量網路傳輸量)


這個頁面上,上面有一個Banner,左邊有一個分類的Menu
中間有一個GridView...
現在我將GridView做換頁的動作,
在沒有包UpdatePanel的情況下是...


有包UpdatePanel的情況下是...


主要差別的地方是:PageSize跟左邊Menu的WebResource

很明顯我們可以看到...PageSize分別是38K跟18K
而WebResource的地方,則在換頁時,不會再次載入...(這個或許不應該計算進來,因為可以透過設定WebConfig來讓WebResource的部分,做Catch)

PageSize會有這麼大的差別,主要是因為我左邊的Menu還蠻大的,而且可能更大...
所以我用UpdatePanel可以節省掉這一塊...

這樣做的簡單測試,或許有些粗糙...
效能方面並沒有去作壓力測試與CPU監控...
但是光是這樣一倍之差的網路傳輸量,就值得我去用它了。(況且是在不用修改任何程式的情況下...)

所以我認為,使用UpdatePanel是看你怎麼用而已...
一個Page只有少量的控制項,或是將整各Page包在UpdatePanel裡面...
這都沒有必要用UpdatePanel,除非你頻寬夠大,只想要它沒有閃爍的感覺...

後續會再仔細研究UpdatePanel的source code,可能會推翻討論區上的論點,也可能會推翻自己目前的論點...

歡迎更為提供不同的論點給我做參考...感謝

1 則留言: