Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Latest results

Loading the latest results from the benchmark workflow…

Last hand-checked run

From run 34254363545 on commit f46e7bf (2026-09-08), GitHub-hosted ubuntu-latest. The README carries the same table; the per-commit trend is at dev/bench.

Real corpus: tokio 1.45.0 + Django 5.2

6,237 files, 38.9 MB of text, 134k distinct trigrams, 242k symbol references, 5.9k dependency edges.

BuildValue
Discovery130 ms
Build (read, trigrams, symbols, imports, merge)4.26 s — 1,464 files/s, 9.1 MB/s
Resident memory after build118 MB (process before build: 8 MB)
Index save201 ms (21.5 MB on disk)
Index load, reconciling255 ms
Queryp50p95
text, common word0.95 ms1.03 ms
text, identifier1.52 ms1.64 ms
text, no match1 µs1 µs
text, short (two characters)1.40 ms1.46 ms
text, full ranking0.94 ms1.04 ms
text, path-filtered1.02 ms1.08 ms
regex with literal1.37 ms1.50 ms
regex, case-insensitive0.72 ms0.80 ms
regex, no literal (full scan)1.72 ms1.91 ms
symbol, exact3.66 ms4.32 ms
symbol, prefix4.01 ms4.35 ms
references0.67 ms1.00 ms
incremental: modify one file10.1 ms14.0 ms

Synthetic (Criterion), same run

BenchmarkCorpusMean
text search, common query100 files0.39 ms
text search, rare query100 files27 µs
text search, no match100 files0.45 µs
regex, literal100 files0.49 ms
regex, alternation100 files0.52 ms
regex, no literal100 files0.71 ms
index build100 files53 ms
index save / load1,000 files7.9 ms / 9.2 ms

Values are Criterion means; the corpus is generated by benches/search_benchmark.rs.