fix(find): Ignored volatile dirs in benchmarks.

This commit is contained in:
2026-06-17 11:48:05 -04:00
parent 05ef638d51
commit 46ffe4f99a
2 changed files with 21 additions and 16 deletions

5
PERFORMANCE_IDEAS.md Normal file
View File

@@ -0,0 +1,5 @@
findr is 4.5x slower than fd (case 1: 658ms vs 146ms). Opportunities:
- Per-thread result buffers (eliminate mutex contention)
- Arena allocator for path strings
- Larger getdents buffer (8KB → 64KB+)
- Buffered stdout output

View File

@@ -38,17 +38,17 @@ echo
# --- file counts ---
echo "=== File counts ==="
printf " fd -a . : %8d\n" "$(fd -a . "$TARGET" 2>/dev/null | wc -l)"
printf " findr : %8d\n" "$("$FINDR" "$TARGET" 2>/dev/null | wc -l)"
printf " fd -a -E .jj . : %8d\n" "$(fd -a -E .jj . "$TARGET" 2>/dev/null | wc -l)"
printf " findr -E .jj : %8d\n" "$("$FINDR" -E .jj "$TARGET" 2>/dev/null | wc -l)"
echo
printf " fd -a -E .git -H . : %8d\n" "$(fd -a -E .git -H . "$TARGET" 2>/dev/null | wc -l)"
printf " findr -E .git -H : %8d\n" "$("$FINDR" -E .git -H "$TARGET" 2>/dev/null | wc -l)"
printf " fd -a -E .git -E .jj -H . : %8d\n" "$(fd -a -E .git -E .jj -H . "$TARGET" 2>/dev/null | wc -l)"
printf " findr -E .git -E .jj -H : %8d\n" "$("$FINDR" -E .git -E .jj -H "$TARGET" 2>/dev/null | wc -l)"
echo
printf " fd -a -E .git -HI . : %8d\n" "$(fd -a -E .git -HI . "$TARGET" 2>/dev/null | wc -l)"
printf " findr -E .git -HI : %8d\n" "$("$FINDR" -E .git -HI "$TARGET" 2>/dev/null | wc -l)"
printf " fd -a -E .git -E .jj -HI . : %8d\n" "$(fd -a -E .git -E .jj -HI . "$TARGET" 2>/dev/null | wc -l)"
printf " findr -E .git -E .jj -HI : %8d\n" "$("$FINDR" -E .git -E .jj -HI "$TARGET" 2>/dev/null | wc -l)"
echo
printf " fd -a -E .git . : %8d\n" "$(fd -a -E .git . "$TARGET" 2>/dev/null | wc -l)"
printf " findr -E .git : %8d\n" "$("$FINDR" -E .git "$TARGET" 2>/dev/null | wc -l)"
printf " fd -a -E .git -E .jj . : %8d\n" "$(fd -a -E .git -E .jj . "$TARGET" 2>/dev/null | wc -l)"
printf " findr -E .git -E .jj : %8d\n" "$("$FINDR" -E .git -E .jj "$TARGET" 2>/dev/null | wc -l)"
echo
# --- benchmarks ---
@@ -58,14 +58,14 @@ hyperfine \
--warmup 2 \
--runs 5 \
--export-markdown "$RESULTS_FILE" \
"fd -a . \"$TARGET\" > /dev/null" \
"$FINDR \"$TARGET\" > /dev/null" \
"fd -a -E .git -H . \"$TARGET\" > /dev/null" \
"$FINDR -E .git -H \"$TARGET\" > /dev/null" \
"fd -a -E .git -HI . \"$TARGET\" > /dev/null" \
"$FINDR -E .git -HI \"$TARGET\" > /dev/null" \
"fd -a -E .git . \"$TARGET\" > /dev/null" \
"$FINDR -E .git \"$TARGET\" > /dev/null"
"fd -a -E .jj . \"$TARGET\" > /dev/null" \
"$FINDR -E .jj \"$TARGET\" > /dev/null" \
"fd -a -E .git -E .jj -H . \"$TARGET\" > /dev/null" \
"$FINDR -E .git -E .jj -H \"$TARGET\" > /dev/null" \
"fd -a -E .git -E .jj -HI . \"$TARGET\" > /dev/null" \
"$FINDR -E .git -E .jj -HI \"$TARGET\" > /dev/null" \
"fd -a -E .git -E .jj . \"$TARGET\" > /dev/null" \
"$FINDR -E .git -E .jj \"$TARGET\" > /dev/null"
echo
echo "=== Results written to $RESULTS_FILE ==="