значно вища швидкість роботи порівняно з програмами на Сі.Як на мене це трошки пересмикування, ось слова самого автора (наскільки я розумію) - "I'm willing to bet you've got some big binary files in that directory that ripgrep is skipping but that grep isn't (https://github.com/BurntSushi/ripgrep/issues/113)." До мови це має стосунок ортогональний, до імплементації - найпряміший. А от бенчмарок я так і не знайшов.
Якщо утиліти відсутні у вашому дистрибутиві, то встановити їх можна командою cargo install ripgrep exa fd-find .І легким рухом "make install" ваша система перетворюється на слаку!.. ;D В арчі, до речі, ripgrep і exa є в community:
community/ripgrep 0.7.1-1
A search tool that combines the usability of ag with the raw speed of grep
community/exa 0.8.0-1
ls replacement
Мені не треба щоб grep шукав по двійковим файлам, тільки по текстовим, так що це фіча а не бага.значно вища швидкість роботи порівняно з програмами на Сі.Як на мене це трошки пересмикування, ось слова самого автора (наскільки я розумію) - "I'm willing to bet you've got some big binary files in that directory that ripgrep is skipping but that grep isn't (https://github.com/BurntSushi/ripgrep/issues/113)." До мови це має стосунок ортогональний, до імплементації - найпряміший. А от бенчмарок я так і не знайшов.
Якщо утиліти відсутні у вашому дистрибутиві, то встановити їх можна командою cargo install ripgrep exa fd-find .І легким рухом "make install" ваша система перетворюється на слаку!.. ;D В арчі, до речі, ripgrep і exa є в community:
Мені не треба щоб grep шукав по двійковим файлам, тільки по текстовим, так що це фіча а не бага.Мені треба, надто вже часто це виявляється корисним :) Правда, там інколи дивна логіка, тому часом пошук по бінарях таки треба форсувати з "grep -a" - тобто імплементація справді могла б бути кращою.
Не перетворюється, бо cargo ставить бінарники у ~/.cargo/bin, який треба додати в PATH, або у вказаний каталог. Навіть під рутом він не ставить у /usr/bin чи /usr/local/bin .Тоді ой, не знав про деталі.
нарешті дійшли руки спробувати: я часто шукаю фрази в архівах текстів: це десь 20 текстових файлів, разом 250 млн слів (4,7 Гб)O_o
Це ті, що в Redox OS? І чому вони там саме в пʼять раз швидші? Бо пʼять ядер в розробника на машині?Не знаю чому швидше — напевно краще написали, плюст rust любить підставляти функції, через що код розбухає в кілька разів, але працює швидше. До того ж там простіший автомат регулярних виразів ніж у grep, тому він багато чого не вміє.
напевно краще написалиТа 100%. Прямі руки і світла голова автора.
Off-topic:Трохи танців з бубном, і fd-find та ripgrep під mingw скомпілювалися і навіть запускаються під wine. exa не компілюється бо вона заточена під юнікс.А під Cygwin воно є?
ну я підозрюю тут є декілька факторів: відношення кількості файлів до їх розміру, також кількості файлів до кількості ядер, типи файлів, чи диск ssd тощо, можливо у вас більшість часу обидві утиліти витрачають у sys а не userнарешті дійшли руки спробувати: я часто шукаю фрази в архівах текстів: це десь 20 текстових файлів, разом 250 млн слів (4,7 Гб)O_o
Трясця, по чому ви шукаєте? Я був запустив в себе по робочій директорії, де здебільшого ASCII текст і пару бінарів - як grep десь десять хвилин ковбасив, так і rg.
It uses a lock-free parallel recursive directory iterator, courtesy of crossbeam and ignore.