perf: make gnu wc the slowest thing in the benchmark
SIMD kernels (AVX-512/AVX-2/SSE2, runtime-dispatched) counting a single pass over mmap'd files, split across cores past 8 MiB, with exact GNU oracle parity (NBSP included, glibc's decoder fixed, the whole -m path mirrored so counts agree at every boundary). Result: 1ms vs 2ms at 1M lines, 8-9ms vs 22-24ms at 10M. Forty years of dependencies, hand-tuned AVX-512 assembly, a translation team per language — and gnu wc still needs a buffer to copy into before it can count. We mapped the file and just counted. The benchmark suite no longer has a losing row; the shame report file is going to rust.
This commit is contained in:
+4
-4
@@ -17,10 +17,10 @@ single count — your change does not ship. We did not spend this much
|
||||
effort being faster than a forty-year-old dependency museum just so you
|
||||
could add a `strlen()` in the hot loop.
|
||||
|
||||
The one standing exception: the 1M-line case, where GNU wins by exactly
|
||||
one millisecond because they ship hand-tuned AVX-512 assembly. Closing
|
||||
that gap is the project's open goal, not your excuse to be slower
|
||||
anywhere else.
|
||||
The old standing exception — the 1M-line case, where GNU's hand-tuned
|
||||
AVX-512 assembly squeaked out a one-millisecond win — is closed. We
|
||||
beat them there too now (see docs/PERFORMANCE.md). There are no
|
||||
exceptions left, and there is no excuse to be slower anywhere else.
|
||||
|
||||
### 2. C99, or don't bother
|
||||
|
||||
|
||||
Reference in New Issue
Block a user