Java-java和java调用shell压缩大体积文件效率问题

Java-java和java调用shell压缩大体积文件效率问题

归属感 发布于 2017-04-07 字数 213 浏览 1341 回复 4

在linux环境下,我们对一个目录进行压缩有两种方式:
一.通过shell命令执行压缩或者java 调用shell命令压缩。
二.通过纯粹java进行压缩。
请问大家,那个方式效率比较高,尤其在被压缩的文件在1G以上时候!

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

清晨说ぺ晚安 2017-06-27 4 楼

tar -zcvf吧

泛泛之交 2017-05-28 3 楼

显而易见的事情,实用shell压缩大文件效率会比较高一些,shell脚本可以更好的调用系统资源,而java的效率问题一直就不高。

晚风撩人 2017-05-22 2 楼

Java代码压缩使用本地的zlib压缩:

java.util.zip.ZipEntry;
java.util.zip.ZipOutputStream;

Java的ZipOutputStream使用相同的zlib的zip命令用来为本地库。 因此,在性能方面,我感觉应该是查不多的。最好自己测试一下各自需要多少长时间!
这里我说一下他俩在避免直接输出压缩流的过程中的不同之处:

使用shell,基本流程应该是这样的:

获取压缩文件
启动一个外部进程(或您的Java应用程序集成脚本)
再次阅读压缩的文件
压缩
写入压缩文件

而使用ZipOutputStream压缩的流程:获取结果流,压缩,并将其写入到压缩文件

归属感 2017-04-14 1 楼

如果采用同样的算法,shell中的压缩效率应该要比java写的快,原因在于shell中压缩命令通常采用c或者c++来实现的,同样功能的程序c++写的要比java写的要快。