> Вы растаманы от природы такие недалекие или вы специально головой об стенку бьетесь?
> Любую башовую тулзу для распараллеливания возьми и все. Или это для тебя с твоим отсутствующим образованием высшая математика?О, какой (не)обыкновенно храбрый и умный анонмный аноним! С офигительной аргументацией и (не)оригинальным анонимным анонимствованием из под анонимного анонима! :)
> Для примера с исходниками ядра хватит и такого:
> find . -type f -print0 | xargs -0 -P 4 grep
> *pattern*
Ну смотри:
% time find /somelargeproject -type f -print0 | xargs -0 -P 4 /usr/bin/grep -Ii "sizeof([a-zA-Z].*[0-9])" |wc -l
11690
find /somelargeproject -type f -print0 0,09s user 0,57s system 36% cpu 1,826 total
xargs -0 -P 4 /usr/bin/grep -Ii "sizeof([a-zA-Z].*[0-9])" 4,82s user 2,36s system 329% cpu 2,177 total
wc -l 0,01s user 0,00s system 0% cpu 2,174 total% второй прогон
user 0,00s system 0% cpu 2,182 total
% третий
user 0,00s system 0% cpu 2,190 total
% time rg -uui "sizeof\([a-z].*[0-9]\)" /somelargeproject |wc -l
11690
rg -uui "sizeof\([a-z].*[0-9]\)" /somelargeproject 3,11s user 2,47s system 375% cpu 1,487 total
% второй
user 0,02s system 2% cpu 1,664 tota
% третий
user 0,03s system 2% cpu 1,671 total
% time find /somelargeproject -type f -print0 | xargs -0 -P 4 /usr/bin/grep -Ii uint16 |wc -l
40923
find /somelargeproject -type f -print0 0,08s user 0,55s system 37% cpu 1,698 total
xargs -0 -P 4 /usr/bin/grep -Ii uint16 4,34s user 2,22s system 328% cpu 1,998 total
wc -l 0,01s user 0,01s system 1% cpu 1,996 total
% time rg -uui uint16 /somelargeproject |wc -l
40923
rg -uui uint16 /somelargeproject 2,22s user 2,99s system 372% cpu 1,445 total
Кто-то из нас (опять) сел в лужу. И это (опять) не я. :)
> И будет быстрее чем твой калораст. Больше того можно под разные бенчмарки
> подобрать тулзы которые будет работать быстрее, чем то что я тут привел.
Так подбери - я ж не запрещаю. А то все обещаешься и обещаешься.
Напомню на всякий пожарный: меня лично интересует в первую очередь реальная скорость выполнения и потребление ОЗУ на реальном железе, а не труЪшность ЯП или религиозные догмы и прочие виляния/кривляния анонимного анонима.
В общем, "show me the code". Если не можешь для реального юзкейзка выше, то хотя бы для простой синтетики:
seq 100000000 > /tmp/testit% time rg -ic 1010 /tmp/testit
49700
rg -ic 1010 /tmp/testit 1,19s user 0,24s system 99% cpu 1,428 total
% time /usr/bin/grep -ic 1010 /tmp/testit
49700
/usr/bin/grep -ic 1010 /tmp/testit 2,58s user 0,31s system 99% cpu 2,894 total
> И так во всем. Твой раст тебе привел пример когда он обогнал
> программу, которая заведомо запущена так чтобы работать максимально медленно.
Ты бы эта, вместо надувания щек , взял да и прочитал https://blog.burntsushi.net/ripgrep/#literal-optimizations
А потом пропатчил бы grep, встроил бы поддержку мультипроцев - как никак, 2k19 на дворе.
Но да, опримизировать движок грепа - это не п*зде^W умничание (да яростное и совсем беспалевное накручивание минусиков и плюсиков) на форумах из под безликого анонима :)