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

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

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

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

<?php
header('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()会更好一些,因为压缩之后的内容更少一些。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值