gzip压缩率测试以及PHP如何启用gzip

300条产品数据的二维数组,转JSON发送,原始数据158KB。然后在不同级别的gzip下测试结果如表:


gzip压缩级别 数据大小
0 158KB
1 11.2KB
2 10.5KB
3 10.1KB
4 9.3KB
5 8.7KB
9 7.3KB
10 158KB
-1 8.3KB


可见设为0就是关闭,和原始数据一样。设为1的时候,就已经可以节省93%的带宽和流量,然后每提升一档,其实效果已经非常有限了,但是据说CPU占用率会指数上涨,所以综合看下来,对于文本类的数据,压缩率1已经是完全可以满足要求且性能上最节省,没必要设定更高的压缩级别。也正是基于此原因,并没有进一步做效率测试,只打算使用级别1的压缩。


对于-1这个诡异的值,因为是启用gzip之前的默认值,也好奇测试了一下,得到介于5~9之间的值,似乎相当于官方的推荐值6的效果,不过实际使用中一般也只会设为正数。而对于10,完全没效果,看来超出了范围,所以压缩级别应该是1~9之间。


而对于多媒体的文件来说,本身已经非常固实,而且数据流巨大,压缩实在不划算,建议在配置文件里面仅仅指定针对文本类型的MIME开启gzip,指定MIME的方法这里不重复。


如何开启以及设定gzip压缩级别:


打开PHP的配置文件php.ini,找到开关


 
  1. zlib.output_compression = off //去掉前面的注释并将off改为on;


然后找到压缩级别


 
  1. ;zlib.output_compression_level = -1 //去掉前面的注释并将数字改为你希望的

重启服务器,搞定。


另外据说【;zlib.output_handler】必须保持被注释状态,因为此参数和前面的设置冲突——官方的说法。

发表

你看的观点?

你还可以输入 250 / 250 个字

嘻嘻 大笑 可怜 吃惊 抛媚眼 调皮 鄙视 示爱 哭 开心 偷笑 嘘 奸笑 委屈 抱抱 Dog 大兵 威武

评论信息框

挤奶的力气提交中...


既然没有吐槽,那就赶紧抢沙发吧!