bench: microsecond timing via tools/timeit, toybox oracle, words to 10M lines

This commit is contained in:
2026-09-09 05:23:54 -04:00
parent 7b3a535173
commit 3cde946a68
7 changed files with 186 additions and 138 deletions
+3 -3
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
# bench.sh — race fastwc against GNU coreutils wc on word counts, file input.
# Busybox wc is raced too, for shits and giggles.
# Busybox and toybox wc are raced too, for shits and giggles.
# Fails fast: the moment fastwc is slower than (or disagrees with) an
# oracle wc, a human readable report is written to FAILED-benchmark.txt
# and this script exits non-zero.
@@ -20,10 +20,10 @@ for oracle in $ORACLES; do
printf 'benchmarking %s wc vs fastwc: words, file input (%s interleaved runs each, minimum kept)\n' \
"$BENCH_NAME" "$BENCH_REPS"
printf '%-28s %10s %22s %8s %s\n' 'test' 'wc' 'fastwc (ms µs)' 'ratio' 'status'
printf '%-28s %16s %24s %8s %s\n' 'test' 'wc' 'fastwc (µs)' 'ratio' 'status'
printf '%s\n' '--- words ---'
if ! run_cases words -w 1 10 100 1000 10000 100000; then
if ! run_cases words -w 1 10 100 1000 10000 100000 1000000 10000000; then
exit 1
fi