綾小路龍之介の素人思考

[bzip2] xargsを用いた並列圧縮テスト

逐次実行よりも、独立ならば、プロセスを並列実行した方が早くなるかもしれない。bzip2圧縮を例にして、timeコマンドで実行時間の測定、xargsコマンドで逐次実行と並列実行を行って比較した。少なくともbzip2の場合は早くなった。

以下のように単純に bzip2 -9 に引数を渡すことを考える。

$ bzip2 -9 *.1

並列実行との比較のために、xargsを使うと、以下のようになる。実行時間をtimeで計測する。

$ time find -type f -name '*.1' -print0 | xargs -0 -r -t -P0 bzip2 -9
bzip2 -9 ./**********************************.1 ./******************************.1 ./*******************************.1 ./*******************************.1 ./***********************.1 ./******************************.1 ./***************************.1 ./************************.1 ./*****************************.1 ./***********************************.1 ./*****************************.1 ./************************************.1 ./**************************.1 ./****************************.1 ./*****************************.1 ./*********************************.1 ./*******************************.1 ./******************************.1 ./**************************************.1 ./***************************.1 ./*******************************.1 ./******************************.1 ./*********************************.1

real    10m12.115s
user    1m14.581s
sys     0m0.984s

xargsを使って並列実行する例は以下。

$ time find -type f -name '*.1' -print0 | xargs -0 -r -t -n1 -P0 bzip2 -9
bzip2 -9 ./**********************************.1
bzip2 -9 ./******************************.1
bzip2 -9 ./*******************************.1
bzip2 -9 ./*******************************.1
bzip2 -9 ./***********************.1
bzip2 -9 ./******************************.1
bzip2 -9 ./***************************.1
bzip2 -9 ./************************.1
bzip2 -9 ./*****************************.1
bzip2 -9 ./***********************************.1
bzip2 -9 ./*****************************.1
bzip2 -9 ./************************************.1
bzip2 -9 ./**************************.1
bzip2 -9 ./****************************.1
bzip2 -9 ./*****************************.1
bzip2 -9 ./*********************************.1
bzip2 -9 ./*******************************.1
bzip2 -9 ./******************************.1
bzip2 -9 ./**************************************.1
bzip2 -9 ./***************************.1
bzip2 -9 ./*******************************.1
bzip2 -9 ./******************************.1
bzip2 -9 ./*********************************.1

real    1m13.695s
user    1m19.581s
sys     0m1.516s

およそ10分の1に実行時間が短縮された。

リファレンス

  1. Man page of XARGS
  2. Man page of bzip2

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2010-04-27T21:18:21+09:00
  2. Modified: 2010-04-27T21:18:21+09:00
  3. Generated: 2017-06-18T23:09:19+09:00