Skip to content

Update MessageDifferencer repeated set benchmarks for high-fidelity production modeling. - #29535

Draft
copybara-service[bot] wants to merge 1 commit into
mainfrom
test_974107248
Draft

Update MessageDifferencer repeated set benchmarks for high-fidelity production modeling.#29535
copybara-service[bot] wants to merge 1 commit into
mainfrom
test_974107248

Conversation

@copybara-service

Copy link
Copy Markdown

Update MessageDifferencer repeated set benchmarks for high-fidelity production modeling.

Replace the flawed legacy BM_RepeatedFieldSet benchmark with a comprehensive suite of microbenchmarks (BM_RepeatedSet_*) that model real production serving conditions:

  • Pre-populate proto payloads and resolve field descriptors outside the timing loop.
  • Remove string reporters to evaluate core differencer serving mode (reporter_ == nullptr).
  • Cover 3 comparison scenarios: shuffled permutations (0% prefix match), identical ordered sets (guardrail), and single disjoint/mismatched sets.
  • Span 4 field types: primitive int32 scalars, SSO strings (<=15 bytes), heap-allocated long strings (>15 bytes), and nested submessages.
  • Use realistic production cardinalities: N = 5, 20, 100, 500.

…roduction modeling.

Replace the flawed legacy BM_RepeatedFieldSet benchmark with a comprehensive suite of microbenchmarks (BM_RepeatedSet_*) that model real production serving conditions:
- Pre-populate proto payloads and resolve field descriptors outside the timing loop.
- Remove string reporters to evaluate core differencer serving mode (reporter_ == nullptr).
- Cover 3 comparison scenarios: shuffled permutations (0% prefix match), identical ordered sets (guardrail), and single disjoint/mismatched sets.
- Span 4 field types: primitive int32 scalars, SSO strings (<=15 bytes), heap-allocated long strings (>15 bytes), and nested submessages.
- Use realistic production cardinalities: N = 5, 20, 100, 500.

PiperOrigin-RevId: 974107248
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