Низкая производительность zgrep в нескольких файлах

Незначительное расширение отличного ответа Андре .

Неотслеживаемые файлы игнорируются.

if git diff-index --quiet HEAD
then
  GIT_MODS="clean"
else
  GIT_MODS="dirty"
fi

1
03.06.2020, 10:30
1 ответ

Ваша вторая попытка, скорее всего, будет улучшена за счет распаковки, иначе каждая итерация цикла будет иметь полные накладные расходы на распаковку — предварительная распаковка будет означать, что у вас будут эти накладные расходы только один раз.

Если это все еще недостаточно быстро, вы также можете попробовать многопоточность (предполагает разархивированный A ).

find B -type f -name 'B*' -print0 \
  | xargs -0 -t -n1 -P8 \
  grep -f {} A >> C.xml

В этом примере должно выполняться 8 процессов одновременно. Возможно, вам потребуется настроить это значение в зависимости от того, сколько у вас процессоров/ядер.

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

2
18.03.2021, 23:32

Теги

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