> Я зарекался чиселки кидать, но ладно. Нашел рандомные логи http://www.almhuette-raith.at/apache-log/access.log
> (906M) (В)брошу свои чиселки:
>> time rg '(\[.*?\]+)' access.log | wc -l
> 4595960
> real 0m1.306s
> user 0m1.206s
> sys 0m0.577s
>> time grep -P '(\[.*?\]+)' access.log | wc -l
> 4595960
> real 0m2.329s
> user 0m2.101s
> sys 0m0.949s
с tmpfs, лучший результат 4 запусков
% time rg -c '(\[.*?\]+)' access.log
4596036
rg -c '(\[.*?\]+)' access.log 1,46s user 0,17s system 99% cpu 1,632 tota% time rg -c -j1 '(\[.*?\]+)' access.log
4596036
rg -c -j1 '(\[.*?\]+)' access.log 1,46s user 0,15s system 99% cpu 1,607 total
time /usr/local/bin/grep -cP '(\[.*?\]+)' access.log
4596036
/usr/local/bin/grep -cP '(\[.*?\]+)' access.log 3,53s user 0,28s system 99% cpu 3,813 total
> Ни для grep, ни для ag я результата дождаться не смог. Не
> знаю, с чем это связано (скорее всего с этим: https://mariusschulz.com/blog/why-using-the-greedy-in-regula...
> - потому вдвойне забавно, что rg это спокойно прожевал), но сейчас
> нет возможности доводить эксперимент до конца.
Тут уже находили анти-паттерн для rg:
seq 100000000 > fstfiletime rg -ic 1 fstfile
47400465
rg -ic 1 fstfile 5,10s user 0,13s system 99% cpu 5,237 total
time /usr/local/bin/grep -ic 1 fstfile
47400465
/usr/local/bin/grep -ic 1 fstfile 4,28s user 0,35s system 99% cpu 4,640 total
time /usr/local/bin/grep -ic "^1" fstfile
11111113
/usr/local/bin/grep -ic "^1" fstfile 3,02s user 0,33s system 99% cpu 3,351 total
time rg -ic "^1" fstfile
11111113
rg -ic "^1" fstfile 7,77s user 0,24s system 99% cpu 8,019 total
Но это уж совсем синтетика - стоит добавить пару знаков и разница уходит:
time rg -ic "^12" fstfile
11111
rg -ic "^12" fstfile 1,83s user 0,19s system 99% cpu 2,020 total
time /usr/local/bin/grep -ic "^12" fstfile
11111
/usr/local/bin/grep -ic "^12" fstfile 2,69s user 0,32s system 99% cpu 3,017 total
Удивительно правда, что у здешнего анонима _все_ оказалось антипаттерном, да еще и c разницей на порядки.