Performance

gzip *.txt 與 gzip test.txt & gzip test2.txt &

  • July 12, 2017

我希望加快 gzip 程序。(伺服器為 AIX 7.1)

更具體地說,目前的實現是 withgzip *.txt並且最多需要 1 小時才能完成。(文件提取量很大,我們一共得到了 10 個文件)

問:跑步會不會更有效率

pids=""
gzip file1.txt &
pids+=" $!"
gzip file2.txt &
pids+=" $!"
wait $pids

gzip *.txt 

在並行性、cpu 消耗等方面的gzip *txt行為是否與後台 (&) 中的 gzip 相同,或者其他選項會更有效?

不要重新發明輪子。您可以使用pigz,它的並行實現gzip應該在您的發行版儲存庫中。如果不是,您可以從這裡獲取。

安裝pigz後,請照常使用它gzip

pigz *txt

我在使用以下命令創建的 5 個 30M 文件上對此進行了測試for i in {1..5}; do head -c 50M /dev/urandom > file"$i".txt; done

## Non-parallel gzip
$ time gzip *txt
real    0m8.853s
user    0m8.607s
sys     0m0.243s

## Shell parallelization (same idea as yours, just simplified)
$ time ( for i in *txt; do gzip $i & done; wait)

real    0m2.214s
user    0m10.230s
sys     0m0.250s

## pigz
$ time pigz *txt

real    0m1.689s
user    0m11.580s
sys     0m0.317s

引用自:https://unix.stackexchange.com/questions/377918