压缩ASP.NET中的ViewState的改进方法(摘抄)

摘自:http://www.chenjiliang.com/Article/View.aspx?ArticleID=689&TypeID=5

自己正在查找关于ViewState性能的资料,看到这篇文章,还没细读.....

昨晚上写了一篇"压缩ASP.NET中的ViewState"的文章,大家都对这种方式是否会带来性能上消耗的问题比较关心.
有一点是肯定的,压缩ViewState的减少网络带宽的占用,肯定会对性能有影响.

我作了一个小小的测试.先后用同一个页面加密和不加密的情况下,刷新页面观测w3wp.exe的CPU占用情况.此页面的ViewState大小为3.996 Bytes 
w3wp.exe 以下是每次刷新的时CPU的情况:
05 03 05 03 06 05 05 08 03 05 03 不加密,平均是 4.6
05 05 06 05 05 03 08 02 03 05 06 加密,平均是5.3
------------------------------------------
今天双鱼座网友的留言写的挺好的:
我觉得真的很在乎服务器开销的话,建议修改一下方法,如果序列化后的长度大于某个值才压缩,然后在压缩码的最前面加上某个标记以便载入时判断是否为压缩的数据。 
有些在使用TreeView和DataGrid的时候,数据量是很大的,达到数百K之巨。但是另外一些时候数据量很小,再压缩就非常不合算了。 
另外,如果系统是面向internet的应用应该以网络带宽负荷为优先;局域网内的应用则应以服务器CPU负荷为优先,不一而论。

晚上借用加班的时间按双鱼座网友的方案对代码进行了一些改动,可以设置当ViewState为多大时才启用压缩,和压缩比率的设置.

修改后的源码如下:

Code

 

posted @ 2008-10-23 18:15  边缘凉风  阅读(222)  评论(0编辑  收藏  举报