微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 使用多个CPU核心优化目录中的映像

我在目录中有几个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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐