2008年5月9日 星期五

你了解 linux 下的压缩文件格式吗?bz2 和 gz 文件对比

  .bz2和.gz都是linux下压缩文件的格式,有点类似windows下的.zip和.rar文件。

  .bz2和.gz的区别在于,前者比后者压缩率更高,后者比前者花费更少的时间。也就是说同一个文件,压缩后,.bz2文件比.gz文件更小,但是.bz2文件的小是以花费更多的时间为代价的。

  压缩实例:对一个599M的文件夹workspace进行压缩

  bz2文件

  time tar -jcvf j.tar.bz2 workspace/

  340M 56.8%

  real 13m20.975s

  user 11m13.872s

  sys 0m5.985s

  gz文件

  time tar -zcvf z.tar.gzworkspace/

  348M 58.1%

  real 2m10.305s

  user 0m54.228s

  sys0m7.399s

  总结:

  压缩后,.bz2文件只比.gz文件小了8M,但却花费了后者6倍多的时间。当然,压缩的比率,时间跟被压缩文件的格式,大小等因素有关。所以,本例不能说明使用gz比使用bz2更划算,但至少可以证明bz2比gz压缩率更高,gz比bz2花费更少的时间。

标签: , , ,

2 条评论:

时间 2008年5月10日 上午4:06 , Blogger Amao 说...

据我了解,bzip2主要是基于BWT算法,这个算法对于文本的压缩效果比较好。而gzip是基于字典的算法,是比较通用的方法,对文本的压缩效果不如bzip2。楼主不妨再找一个比较大的文本文件试一下,相信bzip2的压缩率优势会比较明显。关于bzip2,可以参考wikipedia的条目:http://en.wikipedia.org/wiki/Bzip2

 
时间 2008年5月10日 下午4:21 , Blogger 路人张三 说...

对的,bz2对文本类的有较大的压缩率,你说的不错。

 

发表评论

<< 主页