关于quicklz压缩算法在游戏中的应用

    之前对quicklz算法有一定了解,知道其对单个消息包压缩比几乎没有甚至为负值(之前未测试,只是理论猜测), 故采用聚集压缩(N个消息的字节流的某一部分压缩),这样可有效减少压缩函数的调用次数,减少开销。

      今天给as3搞了个客户端网络库,调试的时候验证了以前的猜测(其对单个消息包压缩比几乎没有甚至为负值),样本数据很简单,几乎无重复的字符串,大概1K多,少了几十字节。 若一个服3K人,用一个网关,一个连接发往客户端1s发3次(一次若干消息), 这样算来,相当于1K连接,每帧都要压缩一次。  算是平均开销。 若往客户端发送的消息很多,那么会出现需要压缩若干次,也就是说若干次函数调用,不过这个情况比较少,平均来讲,CPU 开销以及带宽减少产生的收益还是比较诱人的。

测试过zlib,他的压缩比很理想,但是CPU开销很高。而quicklz 都适中吧。

平衡的把握很纠结。。。

posted @ 2019-03-21 11:52  lcinx  阅读(541)  评论(0编辑  收藏  举报