Performance
gzip *.txt 與 gzip test.txt & gzip test2.txt &
我希望加快 gzip 程序。(伺服器為 AIX 7.1)
更具體地說,目前的實現是 with
gzip *.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