Различия в производительности между конвейерами и заменой процесса

Я не знаю ничего с regexs или любым изящным синтаксическим сахаром получать желаемый результат. Вот способ получить желаемый результат, тем не менее, который находит использование.

find . -maxdepth 1 -mindepth 1 -type f -name '*.png' -o -name '*.jpg' -exec mv -t newfolder {} +
7
03.05.2014, 17:21
1 ответ
[114326] Делая ту же [114691] стропу [114692], можно увидеть разницу:

alt text

с трубой [114693] [114694]:

с [114695] проку-суб [114696]: Приведенная выше статистика показывает, что [114697]pipe[114698] создает больше дочерних процессов ([114699]клон[114700] syscall) и тратит много времени на ожидание завершения дочернего процесса ([114701]wait4[114702] syscall), чтобы родительский процесс продолжил выполнение. Замена процесса

  • Замена процесса [114704] не происходит. Она может читаться непосредственно из дочерних процессов. Замена процесса [114705]Process substitution[114706] выполняется одновременно с расширением параметров и переменных, команда в [114707]Process Substitution[114708] выполняется в фоновом режиме. Из [114709]bash manpage[114710]:
  • Update
  • Doing strace со статистикой из дочерних процессов:
  • With [114713]pipe[114714]:

    With [114715]proc-sub[114716]:

    8
    27.01.2020, 20:17

    Теги

    Похожие вопросы