调用以下命令时,我发现它运行缓慢,尽管磁盘、CPU 和内存都没有消耗太多(使用 top / iotop 检查)
find . -type f -size +0 -exec ./work.sh {} \;
我选择了这个特殊的 find 构造,因为我有很多文件(>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。