LINUX.ORG.RU

krep 2.0.0

 , krep, , ,


3

2

11 февраля состоялся выпуск 2.0.0 krep — высокопроизводительной, многопоточной, SIMD-оптимизированной консольной утилиты для поиска строк.

Основные особенности:

  • В зависимости от типа шаблонов для оптимальной производительности используются алгоритмы Бойера—Мура—Хорспула, Кнута—Морриса—Пратта или Ахо—Корасик.
  • Использование отображаемого на память файла при обработке больших файлов.
  • Автоматическое распределение поиска по доступным ядрам процессора.
  • SIMD-оптимизация с поддержкой SSE4.2, AVX2 и NEON.

Утилита написана на языке C и распространяется по лицензии BSD-2.

Изменения:

  • значительно улучшена производительность многопоточной обработки пути в функции search_file;
  • добавлен скрипт test/benchmark_krep_vs_rg.sh для сравнения krep и ripgrep;
  • исправлена ошибка рекурсивного пропуска минимизированных ресурсов (вида .min.*);
  • улучшено тестирование.

>>> Подробности на GitHub

★★★★★

Проверено: CrX ()
Последнее исправление: dataman (всего исправлений: 2)

Все такие довольные в комментах.

А я вот почитал исходный код.

Там косяков и недоделок - куча.

Например:

  • Опция -i работает только с английским языком и базовой ASCII кодировкой.
  • Опция -r пропускает файлы и директории согласно встроенному списку исключений, который невозможно отключить, и который можно посмотреть только в исходниках.
  • Код очень рыхлый и написан в худших традициях Си-хакеров с массивами фиксированного размера и кучей ручной работы с памятью.

В общем, это не универсальный инструмент, а тулза чисто под случай самого автора.

wandrien ★★★★
()

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

Но тогда исчезнет «истинная непорочность» сишечки, и красноглазики, которые сами код не пишут, но активно бдят на форумах, будут недовольны))

А еще лучше переписать на zig конечно.

wandrien ★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.
Тема будет перемещена в архив .