LoginSignup
0
0

More than 1 year has passed since last update.

【1行野郎】できる限り速くファイルに列挙したデータをアーカイブにする

Last updated at Posted at 2021-07-24

何か良いアイデアがあれば、連絡いただけると有り難いです

概要

次の調査をしたときの記録. 正確には一行野郎では無いですが..

次のようにアーカイブしたい対象を列挙した input.txt があり、
input.txt に列挙したデータ群を無圧縮でも良いので、できる限り速くアーカイブにしたい.

$ cat input.txt
./.bashrc
./.emacs.d/bookmarks
以下略

その他、条件は以下であった.
・input.txt に列挙したデータの個数は 20万個 ほどであった.
・input.txt に列挙したデータの総サイズは 20GB ほどであった.
・input.txt に記したデータ構造(ツリー)でアーカイブにする.
・スクリプトを作って並列化はさせたくは無い (∵ バグ混入を避けるため).

実行

以下、生成されるアーカイブ(約20GB) を output.* という形式にしている.
結果は以下であった.

## 下記だと 12分
$ cat input.txt | zip -0 -ry -@ output.zip &>/dev/null

## 下記だと 36分
$ tar cv -I pigz -f output.gz -T input.txt &>/dev/null

## 下記だと 40分経過しても終了せず
$ tar cv -f output.tar -T input.txt &>/dev/null

結論

・平凡そうに見える zip -0 -r が最も速くて意外だった
・データ数や総サイズなどの条件次第で結果は異なる気がする.

参考にしたサイト

URL
https://mickey-happygolucky.hatenablog.com/entry/2018/04/21/011811
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0