gzcompress, gzencode, gzdeflate三个压缩函数的对比

PHP的自带的函数中,有三个压缩相关的函数:gzcompress、gzencode、gzdeflate,下面我们通过一段程序,来比较一下这三个函数的压缩比。
代码:
$string = "8aeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeer8aaaaaaaaaaaaaaaaaaaaaaadasd456as
d456asd456asd456asd456asd456asd456asd456asd456asd456asd456asd456fasdf45645645645645645
6456456456456456456456456456456456456456456456456456456456456456456456456a56fs4s4s4s4s
4s4s4s4s4s4s4s4s4s4dsdga133333333333333333333w8etw7q9999999999999999999a23s1dfffffffff
fffffffffffffffa456ssssssssssssdv2sdddddddddddddddddddf";echo "字符串长度:";echo strlen($xx);echo "<br/>gzcompress压缩后长度:";echo strlen(gzcompress($string,9));echo "<br/>gzencode压缩后长度:";echo strlen(gzencode($string,9));echo "<br/>gzdeflate压缩后长度:";echo strlen(gzdeflate($string,9));

运行结果是:
字符串长度:388gzcompress压缩后长度:80gzencode压缩后长度:92gzdeflate压缩后长度:74

由此可见,这三个函数按照压缩效果进行排序:gzdeflate、gzcompress、gzencode,gzdeflate压缩效果最好,gzcompress次之,gzencode最差。

分析:
查了下手册,gzcompress、gzencode、gzdeflate这三个函数,分别采用的是zlib、gzip、DEFLATE方式压缩格式。通过上面的运行结果,不知道是否可以这么认为,DEFLATE、zlib、gzip的压缩效果递减。

时间: 2024-08-07 12:17:04

gzcompress, gzencode, gzdeflate三个压缩函数的对比的相关文章

java创建线程的三种方式及其对比

Java中创建线程主要有三种方式: 一.继承Thread类创建线程类 (1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务.因此把run()方法称为执行体. (2)创建Thread子类的实例,即创建了线程对象. (3)调用线程对象的start()方法来启动该线程. package com.thread; public class FirstThreadTest extends Thread{ int i = 0; //重写run方法,run方法的方

[转载]三款SDR平台对比:HackRF,bladeRF和USRP

这篇文章是 Taylor Killian 13年8月发表在自己的博客上的.他对比了三款平价的SDR平台,认为这三款产品将是未来一年中最受欢迎的SDR平台.我觉得这篇文章很有参考价值,简单翻译一份转过来.原文在这里:http://www.taylorkillian.com/2013/08/sdr-showdown-hackrf-vs-bladerf-vs-usrp.html 翻起来才发现,太长了.觉得这么长就没必要翻译了,不符合快速阅读的习惯,深度阅读的人显然应该直接看原文.但是既然开了个头,就翻

并发编程(壹):创建线程的三种方式及其对比

创建线程的三种方式及其对比 1. 继承 Thread类 (1). 继承Thread类.并重写run()方法,该方法无参数,无返回值: (2). 创建子类实例,并实例化对象: (3). 通过start()方法启动,注意:不是通过run()方法启动. public class ThreadDemo extends Thread{ public void run(){ System.out.println("继承Thread创建线程的."); } } public class ThreadA

php 压缩函数gzencode gzdeflate gzcompress

gzencode 默认使用ZLIB_ENCODING_GZIP编码,使用gzip压缩格式,实际上是使用defalte 算法压缩数据,然后加上文件头和adler32校验 gzdeflate 默认使用ZLIB_ENCODING_RAW编码方式,使用deflate数据压缩算法,实际上是先用 LZ77 压缩,然后用霍夫曼编码压缩 gzcompress :默认使用ZLIB_ENCODING_DEFLATE编码,使用zlib压缩格式,实际上是用 deflate 压缩数据,然后加上 zlib 头和 CRC 校

PHP5.5三种序列化性能对比

json_encode,serialize,igbinary三种序列化方式,在之前已经有过相关的测试,PHP5.5这方面的测试暂时没有,这次测试基于PHP5.5,并且测试用例,http://blog.csdn.net/hguisu/article/details/7651730的测试用例是一样的,只是从这个测试上家里igbinary serialize的测试,作为对比,可以参考http://www.ooso.net/archives/538 运行环境        PHP5.5 内存 16G 8

《构建之法》软件工程教学三校3月份对比

目录 1    概述 2    背景对比 3    网络教学方式对比 4    作业强度对比 5    单样本学生作业得分统计 概述 2015年新学期,石家庄铁道学院.广州商学院.贵州师范大学同时在软件工程教学课程上采用了邹欣<构建之法>作为教程,本教程的核心理念是"做中学". 三个学校的学生同步进行了下面工作: 学生在博客园上建立账户 每次作业的结果在博客上呈现 课程由教师或者配备的网络助教进行点评 本文档根据三个学校3月份到4月份的学生博客做初步的对比. 背景对比 学校

C# Thread、delegate、Task三种异步进行对比

1.Thread [线程] 不断创建 Thread 会消耗很大的cup 导致 异步效率变慢 2.delegate[委托异步] 由于需要不断的实例化 委托类 将会消耗cup 和 内存 3.Task [结合  async] 这种是三种中性能最好的  较低的cup和内存损耗 下面是例子: #region 委托异步 和  asycn 异步进行对比        /// <summary>        /// 运行        /// </summary>        /// <

Storm 系列(六)—— Storm 项目三种打包方式对比分析

一.简介 在将 Storm Topology 提交到服务器集群运行时,需要先将项目进行打包.本文主要对比分析各种打包方式,并将打包过程中需要注意的事项进行说明.主要打包方式有以下三种: 第一种:不加任何插件,直接使用 mvn package 打包: 第二种:使用 maven-assembly-plugin 插件进行打包: 第三种:使用 maven-shade-plugin 进行打包. 以下分别进行详细的说明. 二.mvn package 2.1 mvn package的局限 不在 POM 中配置

MySQL Cluster, Fabric, Cobar 三大集群特性对比

MySQL有众多集群方案,大多数公司用到的都是主从.读写分离.galera这类多主方案,非常适合于中小企业.对于大企业我们需要分表分库,我之前写了3篇关于有分表分库功能的MySQL集群方案Fabric, Cobar, MySQL Cluster,使用这些方案能够简化分表分库的逻辑,加快开发速度.只看这3篇零散的文章还不能够很好的为自己公司应该使用那种方案做出选择,我们这里对这3种方案作了详细的对比,他们各有优缺点,希望能够对您的选择有所帮助.特性对比情况请看下面的表格: