由于最近的项目中涉及到大数据量的传输,直接导致了客户端的带宽的紧张。特别是有些客户网络不好的情况。
故现在考虑到使用压缩库来降低数据传输的量。
通过别人的介绍,暂时将压缩库的目标定为:quicklz, zlib, snappy.
quicklz: 这个谷歌了吧,号称是世界时最快,压缩比也不错的压缩算法。
snappy: 这个是谷歌开源的压缩算法。大部分网友反映这个库在cpu和压缩率上稍微的都比quicklz低点。
zlib:这个的压缩比非常的高。但是cpu占用会比前两者要多/。
对于我们的数据,测试的情况来看。8M压缩后:
quicklz:6M多 <500ms
snappy 1.5 M <500ms
zlib:280K. 1.5s
可能我们项目的数据比较特殊,导致了quicklz比snappy压缩比小很多。对于zlib这样出色的压缩比我还是很惊讶的。但是由于要考虑到数据的实时传输,1.5s是不能接受的,但是确实压缩比比较吸引人。我在测试下其他的压缩库,看能不能压缩比小,但是耗用的时间更少。