LINUX.ORG.RU

fd 10.0.0 и bfs 3.2

 , fd, , ,

fd 10.0.0 и bfs 3.2

0

2

Состоялся выпуск 10.0.0 консольной утилиты поиска файлов fd, написанной на языке Rust и распространяемой по лицензиям MIT и Apache 2.0.

Изменения:

  • к directory добавлен псевдоним dir при использовании ключа -t/--type;
  • добавлена поддержка формата даты @%s в фильтрах времени, аналогично GNU date (секунд с эпохи Unix для --older/--newer);
  • теперь автоматически не игнорируется директория .git при использовании ключа --hidden с включенным игнорированием VCS;
  • исправлено определение переменной окружения NO_COLOR при использовании опции --list-details;
  • исправлена ошибка вывода скрытых файлов, если путь поиска был .;
  • сборки aarch64 теперь используют 64-килобайтные страницы (при использвании jemalloc);
  • минимальная поддерживаемая версия Rust теперь 1.77.2 (для исправления CVE-2024-24576, только для Windows).

А 2 мая состоялся выпуск 3.2 аналогичной утилиты bfs, но написанной на языке C.
Изменения:

  • добавлено действие -limit N, которое завершается сразу после получения N результатов;
  • реализована функция -context (из GNU find) для поиска контекстов SELinux;
  • реализована функция -printf %Z для вывода контекстов SELinux;
  • переписана система сборки;
  • улучшена поддержка платформ:
    • реализация -acl для Solaris/Illumos;
    • реализация -xattr для DragonFly BSD.

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

★★★★★

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

Годно, нужно. Давно пользуюсь fd — значительно быстрее, чем find работает, что иногда бывает очень приятно. Про bfs слышу впервые, надо будет заценить.

То, что там бинарь на 4 МБ, это, конечно, не здорово. Но то, что оно во много раз быстрее find’а, перекрывает для меня этот недостаток. Ну и удобный синтаксис бонусом.

P.S. попробовал bfs. Не, fd всё ещё быстрее:

CommandMean [ms]Min [ms]Max [ms]Relative
fd -u . /usr41.3 ± 2.236.146.01.00
bfs /usr61.8 ± 2.560.075.31.50 ± 0.10
find /usr296.1 ± 4.7293.1308.97.18 ± 0.39

Это ещё малая разница. Мне лень было более реальный юзкейс проверять — долго же, особенно учитывая, что это ж много попыток с hyperfine. Но так и быть, сейчас оно отпыхтит, скину по /media вместо /usr. Минут через 20, блин…

CrX ★★★
()
Последнее исправление: CrX (всего исправлений: 3)
Ответ на: комментарий от CrX

Наконец отпыхтело.

Summary
  fd -u . /media ran
    2.53 ± 0.94 times faster than bfs /media
   29.05 ± 9.01 times faster than find /media
CommandMean [s]Min [s]Max [s]Relative
fd -u . /media4.726 ± 1.4553.2977.4761.00
bfs /media11.969 ± 2.5138.53214.8592.53 ± 0.94
find /media137.276 ± 5.328126.135144.14229.05 ± 9.01

Вот, собственно, поэтому я в своё время был очень рад обнаружить fd. Одно дело, когда оно 5 секунд тупит — тоже время, но это не ломает workflow, так сказать, просто ощущается как небольшое подлагивание, вместо моментального результата. И совсем другое, когда сидеть и пялить в экран приходится больше двух минут. Да даже если бы и одну минуту — всё равно разница колоссальная для меня.

CrX ★★★
()
Ответ на: комментарий от CrX

P.S. попробовал bfs. Не, fd всё ещё быстрее

У меня в тестах обратная ситуация.

wandrien ★★
()
Ответ на: комментарий от CrX

попробовал bfs. Не, fd всё ещё быстрее

А bfs откуда?

В общем, bfs по умолчанию компилируется дебажный. Нужно сконфигурировать релиз: ./configure --enable-release.

Summary
  bfs /lib/ ran
    1.30 ± 0.05 times faster than fd . /lib/
dataman ★★★★★
() автор топика
Ответ на: комментарий от dataman

А bfs откуда?

Я дальше написал — всё из арчевских реп. Версии последние.

В общем, bfs по умолчанию компилируется дебажный. Нужно сконфигурировать релиз: ./configure –enable-release

Там ./configure RELEASE=y — не то?

CrX ★★★
()
Ответ на: комментарий от CrX

ам ./configure RELEASE=y — не то?

Не пробовал, там самописный скрипт.

dataman ★★★★★
() автор топика
Ответ на: комментарий от dataman

В times оно не очень интересно. В секундах надо. А то может ты 10 милисекунд и 12 милисекунд сравниваешь, и там вся разница в «прогреве» запуска самой программы, а не в её непосредственно работе.

У меня одно ажно вот так: fd 10.0.0 и bfs 3.2 (комментарий)

5 секунд против 11 и против двух с лишним минут у тормозного find.

CrX ★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.