Skip to content

benchmark: add Abseil comparison mode and refresh docs#32

Merged
sukeya merged 5 commits into
mainfrom
sukeya/feat/benchmark
May 24, 2026
Merged

benchmark: add Abseil comparison mode and refresh docs#32
sukeya merged 5 commits into
mainfrom
sukeya/feat/benchmark

Conversation

@sukeya

@sukeya sukeya commented May 24, 2026

Copy link
Copy Markdown
Owner

Add an Abseil-backed benchmark configuration for ordered containers and
tighten the comparison target to a single platanus node-size when that
mode is enabled.

The benchmark build now supports a dedicated comparison mode controlled
by PLATANUS_BENCHMARK_WITH_ABSL. When enabled, CMake fetches
abseil-cpp 20260107.1 as a benchmark-only dependency and builds
btree_bench against Abseil's btree containers. In this mode the
registered implementations are intentionally restricted to:

  • STL
  • absl
  • platanus(64)

while platanus(128) and all pmr benchmark variants are excluded.

Update benchmark registration in btree_bench.cpp to add AbslSet,
AbslMultiSet, AbslMap, and AbslMultiMap coverage for Insert, Lookup,
Delete, FwdIter, and Merge across int32_t, int64_t, and string test
data. Keep the previous wider registration behavior when the Abseil
comparison mode is disabled.

Teach benchmark/compare_benchmarks.py to recognize Absl* benchmark
names, place "absl" between STL and platanus on the x-axis, and accept
platanus::kAutoSize as "platanus(auto)". Preserve single-file and
left/right comparison modes, and keep per-implementation coloring for
single-series plots.

Fix benchmark/compare_benchmark_stats.py argument parsing by removing
invalid positional required=True usage so the script works reliably in
its two-input comparison mode.

Refresh the benchmark and reference documentation to match the current
code:

  • document the Abseil comparison mode and its scope
  • document the benchmark build commands and plotting workflow
  • update reference signatures/defaults to reflect kAutoSize and
    NodeByteSize
  • fix stale wording and minor typos

This keeps the benchmark story aligned with the current implementation
and makes STL vs. absl vs. platanus(64) comparisons reproducible from a
fresh build tree.

@sukeya sukeya changed the title Make benchmark rich benchmark: add Abseil comparison mode and refresh docs May 24, 2026
@sukeya sukeya merged commit 13b6d62 into main May 24, 2026
5 checks passed
@sukeya sukeya deleted the sukeya/feat/benchmark branch May 24, 2026 14:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant