Расширяя мой предыдущий комментарий в ответ.
Gnu Parallels - это инструмент командной строки, предназначенный для одновременного выполнения заданий, в котором используются несколько потоков, ядер, процессоров, ПК. xargs теперь предлагает аналогичную функциональность с добавлением -P
переключателя.
Я провел для вас тест на двухъядерном VPS, используя pngquant
для конвертации кучу .png
файлов (126 изображений в среднем размером 9 МБ).
pngquant *.png
заняло 26 минут.
find . -iname "*.png" | parallel pngquant {}
заняло 14 минут.
top
показывает параллельное выполнение двух pngquant
команд одновременно:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 5808 user 20 0 70948 59164 2140 R 100.0 2.9 0:03.49 pngquant 5811 user 20 0 70952 61000 2024 R 99.3 3.0 0:05.67 pngquant