使用zlib库进行短文本压缩

来源:互联网 发布:寒江独钓cc攻击器源码 编辑:程序博客网 时间:2024/04/28 07:00

这几天被服务器内存的事情,搞的脑袋都大了,由于服务器预估不足,程序耗用的内存过大,连做梦都在琢磨办法解决,由于程序对于内存管理这块的结构设计已经非常精巧了,从结构上优化的潜力不大。

后来不得不从存入内存的内容入手,目前的程序将大量的url存在内存里面,所以很容易的想法就是将这些url压缩了。

想到了立马就干,早上6点爬起来,用zlib就开始做。

简单看了一下帮助,就调用compress函数来做了。

可是结果却给我泼了一大盆冷水,compress函数对url这样的短文本基本上没有作用:(

但是现在看来压缩url是比较好的解决方法,因为这样不需要对程序架构进行更改。那只能继续看帮助和zlib的源代码,原来compress这个函数其实就是对deflateInit,deflate这几个函数的封装,仔细的读了一下这几个函数的manpage,发现对于短文本的操作应该这样配置:

1. 取消压缩时加入的header和crc附加码(将windowBits 设置为负值,这样deflate() 就只会生成原始的压缩内容,这点对短文本非常有效)

2. 加入短文本中的高频词到压缩字典中(这点对url这样的数据很有效果)

代码如下:

原创粉丝点击