我的目录中有几个PNG图片,并且正在使用optipng
优化和缩小图片大小。问题是优化所有文件花费的时间太长。
我有一个四核处理器,我注意到optipng
仅使用一个核
当我优化目录时。
这是我正在使用的代码:
ls -1 | while read line
do
optipng -o7 "$line"
done
读取目录时是否可以为四个不同的文件并行执行
optipng
? 最佳答案
还有另一种涉及xargs
的解决方案。
find some/dir/ -iname '*.png' -print0 | xargs -0 -n 1 -P 4 optipng -o7
-P 4
启动4个并行进程,而-n 1
每个进程最多使用一个文件名。或者,如果您使用换行符分隔的文件名,请使用:
find some/dir/ -iname '*.png' | sort | xargs -d \\n -n 1 -P 4 optipng -o7
感谢Joe Lencioni comment on a blog。
更新:我已经编写了一个shell脚本来并行调用多个图像的zopflipng(比optipng压缩的压缩率更高):zopflipng_in_place
关于linux - 使用多个CPU内核优化目录中的镜像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21801085/