Skip to content

v0.4.0 — benchmark re-baseline

Choose a tag to compare

@KentBeck KentBeck released this 22 Apr 03:40
· 85 commits to main since this release

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