Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java或shell脚本解压大型文件(~80GB)_Java_Linux_Bash_File Io_Gzip - Fatal编程技术网

使用Java或shell脚本解压大型文件(~80GB)

使用Java或shell脚本解压大型文件(~80GB),java,linux,bash,file-io,gzip,Java,Linux,Bash,File Io,Gzip,我有一个Java应用程序,需要从中解压缩大约80GB的GZIP文件。我应该使用JavaAPI进行解压,还是应该调用一个bash脚本来解压文件?哪一个更有效?我可能有超过1个zip文件,因此每次解压可以使用多个线程吗?我的环境是基于Linux的gunzip命令比基于Java的解压方法更快,因为它是本机代码,经过高度优化 您可以使用bash在一个单独的进程中解压每个文件,解压速度可能会更快,但由于磁盘访问瓶颈,解压速度不如预期 当然,尽管仍然存在瓶颈,但在SSD驱动器或在单独磁盘上并行解压缩多个文件

我有一个Java应用程序,需要从中解压缩大约80GB的GZIP文件。我应该使用JavaAPI进行解压,还是应该调用一个bash脚本来解压文件?哪一个更有效?我可能有超过1个zip文件,因此每次解压可以使用多个线程吗?我的环境是基于Linux的

gunzip
命令比基于Java的解压方法更快,因为它是本机代码,经过高度优化

您可以使用bash在一个单独的进程中解压每个文件,解压速度可能会更快,但由于磁盘访问瓶颈,解压速度不如预期


当然,尽管仍然存在瓶颈,但在SSD驱动器或在单独磁盘上并行解压缩多个文件的情况下,瓶颈可以最小化。

使用Java API或bash脚本?主要基于意见。--有效率的你自己试试看多线程?是的。对于这种大小的文件,并行运行多个解压缩实际上可能会比较慢,因为这可能会增加磁盘arm查找时间,假设CPU足够快,只需进行一次解压缩即可使磁盘忙。@Andreas取决于您使用的是SSD驱动器(不涉及arm,只有传输速率瓶颈)还是在多个驱动器中并行解压缩(源文件位于不同的驱动器上)。无论如何,解决方案都需要适当的基准测试。