冗談抜きで、並列処理させたら速度が10倍以上に

benchmark

8つのフォルダにそれぞれ900枚の合計7200枚のJPEG画像が入っていて、これをAppleScriptですべて破損チェックさせてみた。 

ふつーに順次処理するパターンでは、最初に指定フォルダ以下のファイルパスをすべて取得。ファイルの一覧を順番に確認していくという処理になる。結果は163秒。7200枚のチェックで163秒というのは悪くはない数字だが、処理を走らせるとアクティビティモニタの目盛りがちょっとしか動かない。ぜんぜんマシンのパワーを発揮していない状態だ。 

そこで、先日開発した並列処理化ルーチンを投入して、フォルダ数を自動検出してフォルダの数だけプロセスを生成し、子プロセス側で処理するようにしてみた。 

結果は、驚きの12秒!!!! 13倍も速かった。 

並列処理実行中は、アクティビティモニタの目盛りもMAXまでぴったり張り付いて、AppleScriptで叩き出せる限界まで処理能力を引き出せたようだ。 

今回のテストでは、ファイルI/Oぐらいしか行わなかったが、何か特定のアプリケーションを複数のプロセスから同時に制御しようとしたら、またいろいろと試さないといけないだろう。transaction文で排他制御しようとしたものの、ちょっと試したぐらいではうまく行かなかった。

Copyright By Piyomaru Software. All Rights Reserved