v0.4.0 — benchmark re-baseline
Re-measured all 10 benchmarks at -benchtime=3s -count=5 against current HEAD. benchmarks.md now reflects post-generics reality with a documented protocol / environment footer.
Headline numbers
median of 5 reps, VirtualApple @ 2.50GHz, Go 1.24.2
| Operation | ART | B-tree | Winner |
|---|---|---|---|
| Put (bulk) | 150.8 ns/key | 752.6 ns/key | ART 5.0× |
| Get (hit) | 57.57 ns/op | 861.9 ns/op | ART 15× |
| Get (miss) | 9.36 ns/op | 118.5 ns/op | ART 12.7× |
| Delete (bulk) | 124.5 ns/key | 796.3 ns/key | ART 6.4× |
| Range (1 %, 100 K) | 19.21 ns/key | 10.73 ns/key | B-tree 1.8× |
Flagged for follow-up (regressions vs pre-generics)
- ART Get (hit) +33 %
- ART Delete +78 %
Both deferred — investigation is a separate PR.
Surprise improvement
- ART build-time allocs/entry dropped 2.02 → 1.02 (−50 %), likely a monomorphisation benefit from the generics refactor.
Install
go get github.com/KentBeck/AdaptiveRadixTree2@v0.4.0
Compare: v0.3.0...v0.4.0