php自带压缩方法的性能比较

来源:互联网 发布:如何优化标题 编辑:程序博客网 时间:2024/05/20 12:48

在保存一些数据到redis中的时候,如果数据量非常大,无疑会占用过多的服务器内存,影响服务器性能,这时我们不妨先压缩后再写入到redis中

读取内容的时候,可以先解压然后再使用。压缩的方法是php提供的,一个是bzcompress()方法,一个是gzcompress()方法,那么哪一个更优秀呢?

我们来测试一下,以下是php代码:

<?phpheader('Content-Type:text/html; charset=utf-8');$input = file_get_contents('/tmp/debug.log');echo '内容长度:'.strlen($input);echo '<br/>';$start_time = microtime(TRUE);$input_compressed  = bzcompress($input,6);echo 'after compressing,time interval:'.(microtime(TRUE)-$start_time).', length:', strlen($input_compressed).'<br/>';$input_uncompressed = bzdecompress($input_compressed);echo 'after uncompressing,length:'.strlen($input_uncompressed).'<br/>';$start_time = microtime(TRUE);$input_compressed  = gzcompress($input,6);echo 'after compressing,time interval:'.(microtime(TRUE)-$start_time).', length:', strlen($input_compressed).'<br/>';$input_uncompressed = gzuncompress($input_compressed);echo 'after uncompressing,length:'.strlen($input_uncompressed).'<br/>';


执行之后,结果如下,debug.log文件有11M的内容:


内容长度:11190138

after compressing,time interval:1.1139051914215, length:359866

after uncompressing,length:11190138

after compressing,time interval:0.19483304023743, length:872131

after uncompressing,length:11190138


可以看到,压缩时间上是bzcompress()耗时多,gzcompress更优秀一些。

但是压缩效果上,bzcompress()会更好一些,因为压缩之后的内容更少一些。

原创粉丝点击