【问题标题】:Unzip huge file ( ~80 GB )- Using Java or shell script解压缩大文件 ( ~80 GB ) - 使用 Java 或 shell 脚本
【发布时间】:2016-11-02 10:13:03
【问题描述】:

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

【问题讨论】:

  • 使用 Java API 或 bash 脚本? 主要基于意见。 --- 高效? 自己试试看。 --- 多线程? 是的。

标签: java linux bash file-io gzip


【解决方案1】:

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

您可以使用 bash 在单独的进程中解压缩每个文件,它可能会更快,但由于磁盘访问瓶颈,它没有您预期的那么快。

当然,瓶颈仍然存在,但在 SSD 驱动器或在不同磁盘上并行解压缩多个文件的情况下,瓶颈已被最小化。

【讨论】:

  • 对于这种大小的文件,并行运行多个解压缩实际上可能会更慢,因为它可能会增加磁盘臂寻道时间,假设 CPU 足够快,可以让磁盘忙于只进行一次解压缩.
  • @Andreas 取决于您是使用 SSD 驱动器(不涉及 arm,仅传输速率瓶颈)还是在多个驱动器中并行解压缩(源文件位于单独的驱动器上)。无论如何,该解决方案都需要适当的基准测试。
猜你喜欢
  • 1970-01-01
  • 2021-11-20
  • 1970-01-01
  • 1970-01-01
  • 2012-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多