次のコマンドを呼び出すと、ディスクもCPUもメモリもあまり消費されていないにもかかわらず、実行が遅いことがわかりました(top / iotopで確認)
find . -type f -size +0 -exec ./work.sh {} \;
多くのファイル (>50k) があるため、この特定の検索構造を選択しました。
内部 work.sh は基本的に次のようになります。
prefix=\"$filename\"";"\"$timestamp\"";"\"
SED_ARG="-e 's/^/"$prefix"/'"
zcat $1 | sed = | sed 'N;s/\n/";/' | grep -vE '"timepassed";' | eval sed "$SED_ARG" >> $logfilename
パフォーマンスをプロファイリングまたは改善する方法は何ですか? exec が各ファイルに戻るのを待っているのを見つけたのかもしれませんが、次のファイルの次の exec を生成することができました。