benchmark: add Abseil comparison mode and refresh docs#32
Merged
Conversation
…from 1 bench result.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:
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:
NodeByteSize
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.