Dorado 5 : 2.4.GZIP压缩 (RF4)

除了缓存之外,GZIP是否开启对于网络传输的效率也有着不可忽视的作用。GZIP是指将数据压缩之后在经由网络进行传输,而后利用浏览器原生的GZIP支持对数据进行解压缩的技术。目前的主流浏览器已全部支持了GZIP算法。
对于HTML这种类型的信息,GZIP的压缩算法非常有效,它的压缩比例基本可以保持在80%左右,即100K的HTML信息经过GZIP压缩后可以缩小到25K,这意味这GZIP可以为我们节省75%的网络开销!有点可惜的是,GZIP算法目前还不支持上传数据的压缩,但毕竟BS应用所占用的大部分网络带宽来自于数据的下载。因此,综合数据的上传和下载,在进一步的考虑系统底层的网络开销,启用GZIP应当可以为整个应用节约50-65%的网络带宽。(目前的Dorado默认已启用了GZIP压缩)。对于那些网络环境不是特别好的应用,GZIP带来的性能提升将是非常显著的。
另外,不必担心GZIP的压缩和解压缩带来的运算量。因为对于目前计算机的配置而言,对几十K的数据进行压缩和解压缩,这些负荷实在算不上,我们根本感觉不到这些运算工作本身带来的变化。
使用Fiddler工具可以很容易的观察到GZIP所带来的传输量变化。Fiddler可以模拟发送支持或不支持GZIP算法的请求,来测试两种情况下得到的响应。
实测http://61.151.239.187/dorado5/new-feature/new-table.jsp 页面。
当GZIP关闭时,响应的数据量为19,668 bytes
当GZIP打开时,响应的数据量为5,080 bytes
压缩率为74.2%
经过对大量Dorado页面的测试,我们基本可以认为GZIP的压缩率可以稳定在70%-85%之间。其中对于HTML+JavaScript较多的页面,压缩比率一般较高,可达到80%-90%。对于XML数据较多的页面,压缩的比率稍微低一些,在60-75%之间。这是因为Dorado的页面中对于XML数据的输出,本身就已经采用了一种比较紧凑的格式。例如我们在Dorado页面的输入内容中可以看到类似下面的信息,这是一种比标准的XML更加紧凑的输出方式。

<record id="1186577" pageIndex="1" state="none">
<new>BAIXIAOBO,%u767D%u5C0F%u6CE2,D12,true,true,295113600000,2034.0,%u7855%u58EB,chenbo%40mailServer%2Ecom,www%2Echenbo%2Ecom,</new>
</record>