>[оверквотинг удален]
> split -n l/$CPUS $TMPFILE $TMPFILE.
> for LST in $TMPFILE.*
> do
> wc -l < $LST &
> done
> wait
> wait
>
> Для примера обработки здесь использован wc. Количество параллельных процессов = число ядер-2
> (пару ядер оставим для другой работы).Меня мало беспокоит производительность ScanDir на большом кол-ве файлов.
Львиная доля времени уходит не на ScanDir, а на последовательную обработку файлов по одному.
И перенести логику обработки из PHP нельзя, там серьезная обработка.
Вот распаралелить возможно , осталось выяснить как :)