PHP 对数组进行压缩编码, 哪种最好?(php几种压缩方式的对比)
来源:互联网 发布:淘宝开店协议无法同意 编辑:程序博客网 时间:2024/05/29 13:28
<?php@set_time_limit(0);if(php_sapi_name()!=='cli') { header('Content-Type:text/plain');}$s = file_get_contents('http://www.oschina.net/question/998019_121505'); $data = array('data'=>str_repeat($s,100)); function benchmark($function, $times=1){ $started_at = microtime(1); $data = null; for($i=0; $i<$times; $i++){ $data = $function(); } printf("%.5fs, length:%.5fm\n\n", microtime(1)-$started_at, (strlen($data) / 1024 /1024));} echo "serialize \n"; benchmark(function() use($data){ $t = ((serialize($data))); $s = unserialize((($t))); return $t;}); echo "serialize + base64 \n"; benchmark(function() use($data){ $t = base64_encode((serialize($data))); $s = unserialize((base64_decode($t))); return $t;}); echo "serialize + gzip \n"; benchmark(function() use($data){ $t = (gzcompress(serialize($data))); $s = unserialize(gzuncompress(($t))); return $t;}); echo "serialize+base64_encode +gzip \n";benchmark(function() use($data){ $t = base64_encode(gzcompress(serialize($data))); $s = unserialize(gzuncompress(base64_decode($t))); return $t;});exit();
运行结果:
返回值:serialize 0.01427s, length:6.02410mserialize + base64 0.17287s, length:8.03214mserialize + gzip 0.43907s, length:1.44310mserialize+base64_encode +gzip 0.51364s, length:1.92414m感觉各有优势, 不知道选择哪种方案来做...要么时间慢, 要么容量大, 暂没有即时间快,又容量小的方案,权衡下,选择合适的来用。文章来源于:开源中国社区:http://www.oschina.net/question/998019_121505
0 0
- PHP 对数组进行压缩编码, 哪种最好?(php几种压缩方式的对比)
- PHP 对字符串进行压缩和解压
- php合并数组的几种方式
- php三种方式对二维数组进行花样排序
- PHP变量加1的几种方式对比
- Android图片压缩的几种方式
- Bitmap压缩的几种方式
- 图片压缩处理的几种方式
- php 对2维数组 根据某个键值进行排序的几种方法!
- 使用ob_gzhandler函数有3种方法让它对php进行压缩
- 使用ob_gzhandler函数有3种方法让它对php进行压缩
- 使用PHP对文件进行压缩解压(zip)
- php中遍历二维数组的几种方式
- php 遍历二维数组的几种方式
- php中删除数组元素的几种方式
- php中遍历二维数组的几种方式
- php中遍历二维数组的几种方式
- php中遍历二维数组的几种方式
- 技术宅,改变世界!
- Android广播机制
- C 野指针
- Python uuid模块
- CSS 魔法系列:纯 CSS 绘制三角形(各种角度)
- PHP 对数组进行压缩编码, 哪种最好?(php几种压缩方式的对比)
- [leetcode-96]Unique Binary Search Trees(c++)
- 解决c/c++的sequence points和side effects问题
- 互联网MySQL开发规范
- HDU 5059\BC 12B Help him
- Steps 数论水题
- 排序专题之归并排序
- Linux 数据库学习的准备工作---开发环境的配置codeblocks
- C/C++中字符串与数字之间的转换