LINUX.ORG.RU

Как будет быстрее работать grep?

 


1

3
  1. если я запущу греп по все текстовым файлам т.е grep ololo *.txt
  2. или если я буду запускать grep отдельно для каждого файла? Причем одновременно несколько копий grep (кол-во копий = кол-ву процессоров)


Последнее исправление: beastie (всего исправлений: 1)

Причем одновременно несколько копий grep ( кол-во копий = кол-ву процессоров )

Ну и упрётся оно у тебя в I/O.

r3lgar ★★★★★
()

Попробуй и отпишись. Теоретически, если файлы лежат одним последовательным куском, то даже на HDD будет быстрее не параллелить, чтобы не было лишних сиков. А если они у тебя валяются, как попало, то возьми и посмотри сам.

cdshines ★★★★★
()

Выгоднее всего было бы наверное разбить на количество порций по числу процессоров, и кстати есть grep -r ещё.

Так как на запуск самого grep есть некоторый оверхед.

Xenius ★★★★★
()

Давай еще подсказоньку.
Сколько файлов, какого размера, конфигурацию железа

zolden ★★★★★
()

или если я буду запускать grep отдельно для каждого файла?

Быстрее будет только если grep ищет медленнее, чем читает данные с диска, в чём я сильно сомневаюсь.

Но попробуй, чо уж там

find -name 'ololo*.txt' -type f -print0 | xargs -0 -n 50 -p 4 grep 'text to search'

Можешь поиграть с параметрами -n 50 (количество файлов на процесс) и -p 4 (количество процессов), чтобы понять, как быстрее в твоём случае.

no-such-file ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.