linux 下面有没有什么可以多线程进行压缩的工具?

1 view
Skip to first unread message

jun yu

unread,
Jun 10, 2007, 5:50:46 AM6/10/07
to debian-c...@lists.debian.org
一方面是压缩一个有很多文件的目录时,双核的cpu是不是可以同时压2个文件。

另一个是压缩大文件时,比如几个G的文件是,是不是可以多线程进行。

我看bzip2 和tar都没有这些的相关选项。

这个我想对双核应该还是蛮实用的需求。

否则,压缩效率和单核比没有什么提高,顶多只是压缩的同时,再运行别的程序的时候不感觉慢,但很多时候我们更希望的是效率的提升。

lubiao

unread,
Jun 10, 2007, 9:51:38 AM6/10/07
to jun yu, debian-c...@lists.debian.org
一个 文件 file, 由两个或多个 线程 压缩成 另一个 文件 file.tar.gz
我觉得逻辑上 可能 有点 不妥,

lubiao

unread,
Jun 10, 2007, 9:58:26 AM6/10/07
to jun yu, debian-c...@lists.debian.org
多个文件的话, 可能 实现上 也 比较麻烦

JulyClyde

unread,
Jun 10, 2007, 9:08:34 PM6/10/07
to DebianMailListGB
大部分压缩算法是串行化的,不能并行执行,因为其有前后依赖关系

在 07-6-10,lubiao<lubi...@gmail.com> 写道:


> 多个文件的话, 可能 实现上 也 比较麻烦
>


--
Ren Xiaolei

amateur

unread,
Jun 10, 2007, 10:05:37 PM6/10/07
to debian-c...@lists.debian.org
-------------------------
虽然偶不是研究压缩算法的,但是觉得这个还是个不错的想法。不过对于 tar
格式来说,是首先将源文件打成一个包,然后才压缩的,所以是对一个文件的压
缩,多线程对一个文件进行压缩可能需要新的算法或新的压缩格式的支持。

--
[32m《宿建德江》 [m
[33m作者:孟浩然 [m
移舟泊烟渚,日暮客愁新。
野旷天低树,江清月近人。

JulyClyde

unread,
Jun 10, 2007, 10:23:03 PM6/10/07
to amateur, debian-c...@lists.debian.org
如果改成先压缩再打包,就可以并行了

在 07-6-11,amateur<tianle...@gmail.com> 写道:

LI Daobing

unread,
Jun 10, 2007, 11:59:46 PM6/10/07
to JulyClyde, amateur, debian-c...@lists.debian.org
On 6/11/07, JulyClyde <july...@gmail.com> wrote:
> 如果改成先压缩再打包,就可以并行了
其实在常见的情况下,*硬盘速度* 才是瓶颈。


--
LI Daobing

Ming Hua

unread,
Jun 11, 2007, 12:44:47 AM6/11/07
to debian-c...@lists.debian.org
> 如果改成先压缩再打包,就可以并行了

先压缩再打包的话,压缩比率会大大降低 (就是说压缩的结果会比先打包再压缩的
大很多)。

Ming
2007.06.10


--
To UNSUBSCRIBE, email to debian-chine...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

JulyClyde

unread,
Jun 11, 2007, 1:36:11 AM6/11/07
to debian-c...@lists.debian.org
时间和空间不可兼得啊

在 07-6-11,Ming Hua<min...@rice.edu> 写道:
> 先压缩再打包的话,压缩比率会大大降低 (就是说压缩的结果会比先打包再压缩的
> 大很多)。

--
Ren Xiaolei

shell909090

unread,
Jun 13, 2007, 7:51:32 AM6/13/07
to Debian Chinese GB
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

jun yu 写道:

现在的压缩算法基本都是haffman算法的变形,这些算法都是流式算法,将一个
流压缩成另外一个流,因此先天上是单线程算法。如果要多线程压缩,就必须是
块式算法,将一个块压缩成一个块。然而就压缩算法的状况来说,恐怕比较困
难。还有一种方法是将两个流分开压缩,其中一个缓存在内存中,而后再写入。
然而这也面临一个问题,内存不够怎么办?
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFGb9pDOhzb4WnHl2oRAnUqAJ41vmzd5ojh0MsWGLTn8YD89ASu1QCgw4Di
1LK05OpKjOqw/kpqebWI/NI=
=Uf3m
-----END PGP SIGNATURE-----

Reply all
Reply to author
Forward
0 new messages