现在的位置: 首页 > 综合 > 正文

利用压缩提高DevExpress ASP.NET 性能

2013年10月02日 ⁄ 综合 ⁄ 共 1426字 ⁄ 字号 评论关闭

从DXperience 9.2开始,为了实现HTML压缩特别是提高网站的性能,DX提供了web.config的相关设置. 首先,我们看一组数据:

速度对比
使用自定义的HttpHandler,对于9.2版本的性能影响是非常明显的,从下表中可以看出9.1跟9.2的对比数据:

以下测试工具是采用Fiddle2得出的结果:

 
 2009.1   2009.2 
 
接收字节数: 1,906,225   792,501 
耗时: 00:00:21.7013394   00:00:05.0325032 
text/ Java Script: 761,949   134,195 
text/html: 924,800   40,667

页面加载速度从 21.7 到 5 秒 ! 在512K的网速下,速度快了4.3倍.

HTML 输出小了 5 到 7 倍! 页面大小从 324K 到 41K - 大概少了7倍.

设置
要得到比较好的HTML压缩率和资源文件压缩,可以在web.config里设置下面四个设置(第四项在9.2.4中会导致报表导出BUG,第三项在9.2.4中可能会导致部分BUG):

     <appSettings> 
         <add key="DXEnableCallbackCompression" value="true"/> 
         <add key="DXEnableResourceCompression" value="true"/> 
         <add key="DXEnableResourceMerging" value="true"/> 
         <add key="DXEnableHtmlCompression" value="true"/> 
     </appSettings> 
      
DXEnableCallbackCompression – 压缩 AJAX 回调(默认为true) 
DXEnableResourceCompression – 压缩脚本和CSS 文件(默认为true) 
DXEnableResourceMerging – 把所有脚本合并成单个文件 (从不同的程序集) 和所有CSS文件合并成单个文件以降低服务器请求. (默认为false) 
DXEnableHtmlCompression – 压缩包括AJAX回调在内的HTML 输出到客户端浏览器 (默认为false) 
要压缩单独的页面,可以使用 DevExpress.Web.ASPxClasses.ASPxWebControl.MakeResponseCompressed() 方法. 
HTML 压缩有一个缺点- 客户端浏览器将只显示压缩后的网页. 考虑到压缩文件的压缩率. 压缩文件将在看到内容之前被解压缩.

这就带来一个有意思的问题, 如何考量传输速度和解压缩性能之间的选择?

带宽 vs 处理器
压缩有一个要权衡的东西. 压缩需要在服务器和客户端使用更多的CPU负载. 毕竟,压缩编码是使用较少的比特信息的过程。另一方面,

, 压缩也有较大的优势,如更快的网站访问素的和消耗更少的带宽。所以,您是怎么选择呢?

很简单,选择节省带宽和提高网站速度. 带宽相对来说是要贵一点的,而处理器的成本相对便宜一点。事实上,现在的处理器速度已经很快了,足以轻松地处理HTML压缩需求。

除了ISP的带宽成本,对一个网站来说速度也是重要的。像谷歌,雅虎和微软这些大型的网站就能理解这一点,如果您的网站花很长时间来加载,那么访客很有可能会选择离开。因此,你应该为用户在网络上的体验考虑网站的速度。

抱歉!评论已关闭.