WinZIP/RAR过时了?多款压缩软件横评
泡泡网主板频道11月10日 等待约1年之久,昔日压缩霸主WinZip终于在万众期待下发布了16.0正式版。全世界自然一片沸腾,在世界各大知名下载网站中,WinZip 16.0再次带起下载狂潮。然而此时国内并没有王者回归的欢呼,却一致委婉或直接地表达出失望地情绪,而下载更新的用户也寥寥无几,这绝对是一道国内独特的风景,它不禁让人想问,为什么?从各种评测报告看,因为不支持流行的RAR格式,所以兼容性更佳的WinRAR全面超越固步自封的WinZip 16.0,原来这就是国内用户抵触WinZip 16.0的唯一理由。
苍天已死,黄天当立。这是国内舆论草率的结论。之所以说草率,是因为甚至都没有出现反面声音的媒体,这绝对不是一个成熟正常的氛围。正是这种一边倒的跟风导致了大量用户极端的心态,于是牵强附会、人云亦云和以讹传讹的声音充斥其间。这不由得让人陷入深思,事实上,看似压缩工具之争的表面下深藏的是压缩格式之争。RAR格式即将或者己经取代了ZIP格式吗?不能仅仅从两者的技术表现和统计数据去回答这个问题,计算机数据压缩格式的发展历程是非常独特的,它的王者之选带有传奇的历史烙印,并一直持续产生着决定性的影响。要正确解答这个问题就必须去了解有关数据压缩的历史,任何试图避开历史环境而做出的结论都是轻率的。
LZ算法--ZIP与RAR共祖同源
要讲压缩的历史,就不可不提LZ算法,这是一种有关数据压缩的算法,何为数据压缩?从本质上讲,数据压缩的目的就是要消除信息中的冗余。早在LZ算法出现之前,研究员们从理论上探讨了压缩算法的数学基础及模型基础,同时也在这些基础上研究出了一些编码方法,其中的Shannon-Fano编码和Huffman编码非常有影响力。但这些编码,包括后来发展出的“算术编码”,都无法成为理想的编码方法--因为它们无法在编码效率和编码速度上同时满足日益增长的压缩需求。这种情况在LZ算法出现时等到了解决。
左为香农 右为哈夫曼
<
在DOS年代由于计算机存储介质容量的微小,个人用户对数据压缩软件的渴望是现在的用户无法想象的。例如在1984年,个人计算机的标配不过是容量360kB的5.25寸软盘而已,如果个人能将数据压缩数倍后存储,不啻于节省了一大笔钱。这种渴望在1988年时达到了顶峰,这正是互联网刚刚形成雏形的年代,网络数据交换开始出现。当时最流行的是使用电话线拨号登录别人在家里搭建的服务平台--BBS系统,当时中国也曾有几十个这样的BBS存在,比如水木清华BBS。这种方式不但可以传递文本信息,也可由用户上传文件到站点的计算机以供其他用户下载。不过由于电话线的接入速度慢的可怜,那时的接入标准仅仅是14.4kbit/s,通过BBS传输稍大一点的文件就叫人万分痛苦。于是数据压缩软件就成为了BBS用户一项必须的工具还记得上文提到1985年SEA公司开发的MS-DOS环境下第一个应用 LZW 算法的ARC压缩软件吗?它是当时MS-DOS下统治性的压缩软件。从技术角度来说ARC确实不错,但使用了专利LZW算法的ARC当然是标准的商业软件,使用这种软件工作就必须付费。不过当时许多玩家根本买不起ARC软件,顺便说一句题外话,那时大多PC玩家基本都没什么富裕的钱,事实上个人计算机本身的发展就是被穷玩家精打细算所推动。不过个人计算机从诞生之日起就充满了叛逆、自由的精神,这也是推动整个个人计算机世界前行的主要动力。此时一个年轻的程序员出现并试图改变压缩世界,这个人叫Phillip W.Katz(菲利普·卡兹)。
新压缩软件被命名为PKZIP,而其文件格式扩展名叫作“.zip”。PKZIP可将多个文件压缩到一个文件中,无论压缩比、压缩速度都全面超过了商业软件ARC。菲利普·卡兹将PKZIP作为自由软件免费发放,使其如野火般在全美各大BBS上蔓延开来,用户以几何级数增长,遭受毁灭性打击的SEA公司半年内就无声无息。这段故事最后演变为用自由软件打败商业软件的传奇,菲利普·卡兹更是成为充满幻想的年轻程序员心中十步杀一人的偶像。
群雄逐鹿的结局 WinZip加冕王者
在DOS时代,ZIP格式和它的工具PKZIP并没有成为压缩世界的王者。虽然ZIP格式源于其开放性而在BBS上逐渐成为主流,不过当时的BBS网络环境仍然只属于少数PC玩家。由于CPU运行速度与存储硬件容量的有限,当时个人计算机总是欢迎锱铢必计的压缩软件,因此程序员们也在不懈追求,开发出更快更好的编码算法与压缩工具。1988年到1995年堪称压缩世界的黄金时代,压缩世界处于群雄逐鹿的乱战之中,与PKZIP具有相同影响力的还有LHA(压缩格式为LZH、LHA)和ARJ(压缩格式为ARJ)。
早在1991年微软发布Win3.0不久,共享软件WinZip1.0就诞生了。虽然它号称是Windows ZIP,但实际上跟Win3.0的本质一样,仍是个外壳程序,它不过是在调用DOS下的工具软件而已。很难了解当时WinZip软件作者的想法,也许只能归于远见卓识,在大多数程序员都在开发自己的压缩编码算法的时候,他选择了使用免费的ZIP编码算法然后做了一个压缩工具外壳。当时DOS才不过发展到5.0版本,放弃一个主要的平台而去做一个附属平台的压缩工具,最主要还是没有自己的编码算法,其前途显然是黯淡的。然而到了1995年,这种做法得到了回报,在Win95发布后它马上就推出了相应版本,是当时为数不多的Windows应用工具。实质上此时WinZip仍然是个外壳工具,它还是通过调用DOS程序来解决问题,不过由于前几年积累下的Windows开发经验,使其图形界面在当时做得近乎完美。甚至后来微软在业界的开发会上宣称,Windows应用程序应该怎么做--很简单,像 WinZip那样就行。用户发现WinZip界面是如此精美,操作时如此的亲切友好,完全不用去记什么命令参数,只需要鼠标点几下即可,神秘的压缩原来如此简单,更有趣的是它居然没有一个竞争者,此时的同行还不屑与其竞争。夸张的说,WinZip只用了眨眼的功夫就占据了所有的PC,等到其他压缩工具醒悟过来纷纷开发Windows版本或Windows外壳时,由于缺乏开发经验已经远远落后。等到WinZip推出其真正的Windows应用程序6.x版本时,已尘埃落定,没有自己编码算法的WinZip加冕压缩工具的王者。以后的大多数用户都是通过WinZip认识到ZIP格式,以至于不了解历史的用户甚至以为ZIP就等于winZip,是WinZip的成功导致了ZIP格式的流行,事实上恰好相反。
<
不妨先来思考一个问题,为什么舆论不指责WinZip9.0不支持WinACE的ACE 格式,不指责它不支持WinIMP的IMP格式 ......唯独不支持WinRAR的RAR格式就横加指责呢?答案只能是WinZip不得不支持RAR格式。为什么不得不支持RAR格式呢?答案只能是RAR格式已经成为主流,不支持意味着消亡。这真是一个有趣的推论,2002年时中国的IT媒体还将WinRAR归为非主流压缩软件,而不到两年的时间RAR格式就变成了主流格式,简直就是个奇迹!然而这真的是事实吗?
我们知道ZIP格式成为最主流的原因并不是因为WinZip的出现,而是因为ZIP格式的开放性。ZIP与WinZip之间不过是机缘聚会,即使没有WinZip也必将另外出现类似的“xxZIP”共享软件。ZIP格式的开放从根本上避免了数据压缩世界形成垄断,任何一个消费者总会优先选择免费自由格式的压缩工具,更何况这个免费格式是如此优秀,这使得WinZip之后的任何压缩工具只能先支持ZIP格式站住脚,然后再去推广它不开放编码算法的自有压缩格式。因此最后的结论是不开放的商业压缩格式不可能取代免费ZIP格式成为主流。
2001到2002年中国的宽带网建设一跃成为世界前列,宽带网的发展使得资源的获取变得极其简单。几乎国内有名的资源站点和论坛都出现在此期间,它们无一例外提供的都是RAR格式资源。那么它们的资源又来自哪里?基本都来自于ODAY,所有宣称RAR格式占据网络主流的人都或刻意或无意地回避了这个事实。ODAY是个完全无影无形的破解组织,但他们发布的资源都有同一个特点,就是统一使用RAR格式打包,如此一来发布这些资源的网站要提供ZIP包下载则必须先解开RAR包,然后再将资源重新压缩为ZIP包,最终选择当然是直接提供RAR压缩包下载了,这就是RAR格式开始流行的根本原因。于是奇怪的事情出现了:免费开放的压缩格式得到所有正规商业公司的支持,而收费非开放的压缩格式却崛起于自有破解的地下组织。一个微妙的形势摆在WinRAR面前,它再流行也始终不会去控告违法发布者,那其实是它生存的根源。一个尖锐的问题也摆在用户面前,在合法的前提下你会选择哪种压缩格式?其实是根本就没有选择。
7-Zip是一个开放源码的数据压缩程序,主要用在Windows操作系统,Unix-like的操作系统如Linux与FreeBSD下面有7-zip的移植版本p7zip可以使用。它提供命令行界面的程序或图形用户界面的程序,而且可以与资源管理器结合。7-Zip是自由软件,由Igor Pavlov于2000年开始发展,并把主体在GNU LGPL下发布,加密部份使用AES的代码,使用BSD license发布,解压RAR部分使用RAR特定的许可协议。
国内大部分D版游戏都是用7ZIP进行打包,很大的游戏经过7ZIP打包后往往1张DVD就能装得下,但是安装时却会花费大量时间进行解压。
该格式的开发结构允许添加标准以外的压缩算法。现在支持以下算法:LZMA、PPMD、BCJ、BCJ2、Bzip2、DEFLATE。7-Zip目前在市场上主要的竞争对手是WinZip以及WinRAR,这两者都是专利软件。7-Zip也是目前最普及的开放源代码压缩程序。7-Zip在2007年获得SourceForge.net的社群票选为"非常好的技术设计"及"非常好的项目"两个奖项。
历史遗留格式:LHA
1988年除PKZIP外,另一个重要的压缩工具LHA也诞生了。它的原始名字叫LHArc,由 Haruyasu Yoshizaki所开发,同样是免费软件。较之PKZIP,LHA的优势在于压缩率更高,而且跨平台性支持更好,因此成为日本最流行的压缩软件。不过在西方它也同样很受欢迎,大名鼎鼎的id Software就是使用LHA来压缩他们早期游戏的安装文件,也就是DOOM。即使现在 LHA已经不再流行,但LHA压缩格式文件仍有不少应用,例如我们经常升级的BIOS文件,AWARD公司使用的就是LHA压缩,而在日本的网站更是随处可见。
历史遗留格式:ARJ
1990年,Robert K.Jung开发出一个新的压缩工具,并将其命名为ARJ (Archiver Robert Jung)。这是一个模仿PKZIP之作,与PKZIP极为相似。不过ARJ确实非常优秀,不仅压缩率高人一等,在功能应用上也明显胜出同类产品一筹。例如它是第一个实现分卷压缩的压缩工具,这对于当时以软盘为主要存储方式的PC来说简直就是雪中送炭。ARJ很快凭借着自己的实力占据一席之地,并逐渐成为DOS下最受欢迎的压缩工具之一。
自从ZIP格式发布以来同时又有很多优秀的压缩格式逐渐的被发布开放,而压缩工具也从原来的纯付费衍生出了开源的7z等产物。然而历史的竞争又一次上演,并不是最优秀的压缩技术会被应用普及,而且是最适合的商业模式被发展所承载。如今中国成为互联网发力的第二大核心国家,而中国土地上的互联网新模式也逐渐被独具慧眼的大佬们所发掘,而这次大佬们的目光聚焦在了压缩软件身上。首先国内首个压缩工具好压上线,之后百度的百压,最后连360也推出了压缩工具,显然这些工具都是壳牌工程,但是什么原因什么模式促成了压缩成为焦点呢?引用媒体分析即是,压缩软件之路大概会跟输入法差不多,先占有,再客户端化,与下载、分享、P2P、云存储相结合,都存在一定的想象空间。
好压
软件功能包括强力压缩、分卷、加密、自解压模块、智能图片转换、智能媒体文件合并等。完美支持鼠标拖放及外壳扩展。使用简便,配置选项不多,仅在资源管理器中就可完成你想做的所有工作;具有估计压缩功能,可以在压缩文件之前得到用ZIP、7Z两种压缩工具各三种压缩方式下的大概压缩率;还有强大的历史记录功能;强大的固实压缩、智能图片压缩和多媒体文件处理功能是大多压缩工具所不具备的。
快压
是一款免费、方便、快速的压缩和解压缩利器,拥有一流的压缩技术,是国内第一款具备自主压缩格式的软件。快压自身的压缩格式 KZ 具有超大的压缩比和超快的压缩解压速度,兼容RAR,ZIP 和 7Z 等40余种压缩文件。快压还可作为虚拟光驱软件使用,可挂载光盘镜像。
自创压缩格式(KZ)算法,固实超高压缩比,提升压缩率5-30%; 开放接口,支持插件功能; 支持 KZ、ZIP、7Z 、ACE、ARJ、BZ2 、CAB、GZ、ISO、JAR、LZH、TAR、 UUE、Z 等40余种常用压缩格式。
360压缩
360压缩是新一代的压缩软件,永久免费。360压缩相比传统压缩软件更快更轻巧,支持解压主流的rar、zip、7z、iso等多达37种压缩文件。360压缩内置云安全引擎,可以检测木马,更安全。大幅简化了传统软件的繁琐操作,还改进了超过20项的使用细节,拥有全新的界面。360压缩的主要特点是快速轻巧、兼容性好、更安全、更漂亮,而且是永久免费的。
测试目标文件夹包含4345个独立文件,165个文件夹,体积为804MB。
测试平台配置如下图所示:
测试软件详细信息:
操作系统:WIN7 UltimateSP1 X64
●WINZIP 16.0 X64
●WINRAR4.10 BETA X64
●7ZIP 9.23 ALPHA X64
●好压 V221 X64
●快压 V25 X86
●360ZIP BETA X86
WINZIP设置如下图,采用最高压缩比模式,关闭固实压缩功能。将测试文件夹压缩为ZIP格式。
●固实压缩:固实压缩为将所有文件设置成连续的单独文件进行压缩,下所比例会更高,但是压缩包损坏的话一个文件也解压不出来。
压缩过程开启CPU-Z和Windows任务管理器监测CPU及内存使用状况,WINZIP可以使用全部的4个物理核心并且CPU占用率在50%左右徘徊,内存使用率则为1.45GB。
由于WINZIP没有提供时间显示的功能,所以小编使用手机进行计时,如图所示,压缩804MB的文件夹共花费了1分03秒。
解压缩相对于压缩来说是一件较为轻松的事情。CPU使用率在20%上下,内存则只占用了1.04GB。而且只花费了25秒。
大家最关心的问题莫过于压缩率的大小了,在极限非固实压缩状态下,压缩率为48%,804MB的文件夹被压缩到了384.42MB的大小。
<
WINRAR压缩设置如下图所示,使用非常好的压缩模式,关闭固实压缩功能。 WINRAR可以同时调用I5 2500K的4个核心,CPU占用率在20%上下波动,内存你占用率为1.32GB。耗时1分33秒。 解压缩相对压缩来说比较轻松,CPU占用率在15%上下,内存使用1.59GB。耗时27秒。 压缩后的文件体积为377MB,压缩率为46.8%。 7ZIP压缩设置如下,使用极限压缩模式,非固实。奇怪的是7ZIP中可以识别出4核处理器,却无法使用4线程进行压缩,只能使用2个线程。其他设置均为默认。 7ZIP对我们的CPU极为不友好,不支持4线程压缩,而且明明选择了双线程压缩却只有一个核心满载运行。CPU占用率为37%,内存使用率1.26GB花费时间3分22秒。 解压缩依然只用到了单线程,CPU占用率25%,内存占用1.44GB,耗时37秒。 7ZIP虽然比较耗时耗力,但压缩率还是非常不错的,达到了42%。 好压设置如下图所示,选则为最好压缩模式。ZIP格式,其他均为默认。 压缩文件时,好压对多核心CPU很友好,可以利用到全部的核心进行压缩。CPU占用率为70%,内存占用率为1.43GB,耗时27秒。 PS:图中CPU占用率下降是因为小编将压缩暂停,去了趟WC,真心憋不住了。 解压缩同样可以用到4个核心,内存占用了1.51GB,共耗时17秒。。 经过好压压缩后的文件包大小为421MB,压缩率为52.4%。 快压开发了自己的压缩格式,算法目前还不得而知,设置选项如下图所示,使用KZ格式,压缩方式为最好,非固实模式压缩。 使用快压压缩804MB的文件夹,CPU占用率为30%左右,内存使用率1.41GB,从任务管理器中我们发现,快压使用了3个核心进行压缩。耗时2分56秒。 解压缩时CPU占用率为35%上下,内存占用率为1.76GB,耗时38秒。 804MB的文件夹被快压压缩成了一个342MB大小的KZ文件,压缩率为42.5%。 360压缩还处在beta测试版,因此提供的设置选项非常少,我们选择最好压缩模式进行压缩,格式为zip。 360压缩软件同样可以支持多线程压缩,压缩时CPU占用率在70%左右徘徊,内存占用则为1.45GB,压缩完成耗时2分56秒。 解压缩CPU占用率为15%左右,内存使用了1.61GB。解压消耗了34秒。 经过360压缩软件压缩后,804MB的文件夹变成了399MB的,压缩率为49.6%。 压缩测试中各软件所需时间差距很大,如下图所示。国产壳牌好压压缩软件WINZIP压缩速度非常之快,比最后一名7ZIP快了7倍之多,也比其他参测压缩软件快乐2至5倍,压缩速度惊人。可见,好压不单纯是个壳牌,还是做了相当大的优化的。 如下图,解压缩的耗时差距相对压缩还说小多了,这次国产快压垫底儿,好压继续领先群雄。 从压缩率来看,压缩耗时最多的7ZIP的非固实压缩率达到了42%,略微领先快压0.5个百分点。压缩速度最快的好压软件压缩率为52.4%垫底儿。其他压缩软件差距不是很大。 估计很多人都没有想到,看似不关紧要的小软件却又如此大的性能差距,但如何根据自身需求选择一款压缩软件是一个重要问题。 小编推荐:对压缩速度敏感的网友使用好压,感觉压缩软件用什么都行的可以使用WINRAR,不仅支持格式多、压缩率较高而且速度也不慢,对磁盘空间比较敏感的网友使用7ZIP或者快压,因为使用固实压缩后,压缩率可以继续提高百分之40以上。现在硬盘价格爆高的年代,一款高压缩比的压缩软件可以帮助大家节约很大的硬盘空间。 后记 2000年4月14日,年仅37岁的菲利普·卡兹被人发现倒毙在美国威斯康星州密尔沃基的一家汽车旅馆里,据说死因是慢性酒精中毒引起的并发症。被人发现时卡兹的手中仍握着一个烈性酒的酒瓶,在同一个房间里还发现了另外5个空酒瓶。这位天才程序员从未在ZIP身上得到半点好处,坚持信念的结果是潦倒的生活。他为世界贡献了一个伟大的免费软件,更为重要的是他缔造了一种大众化的压缩格式,然而却过早的离开了这个世界。仅仅两年后,PKWare和WinZip为了商业利益开始分道扬镳。用ULTRAEDIT打开任意一个ZIP文件,都可以看到嵌有菲利普·卡兹姓名字头缩写字母PK,每个ZIP文件都将永远记载着菲利普·卡兹,因此菲利普·卡兹和他的ZIP压缩格式也必将得到永生。不知为什么对于菲利普·卡兹的记忆,在小编脑海中浮现出的是华莱士的那声呐喊:“Free……” ■<