fix(find): Ignored volatile dirs in benchmarks.
This commit is contained in:
5
PERFORMANCE_IDEAS.md
Normal file
5
PERFORMANCE_IDEAS.md
Normal 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
|
||||
32
bench.sh
32
bench.sh
@@ -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 ==="
|
||||
|
||||
Reference in New Issue
Block a user