benchmarking

Documents benchmark harness internals, standings, and regression tooling for the strata JSON library.

Updated Nov 20, 2025
One-click install
npx skills add https://github.com/PrimeLab-Foundation/strata --skill benchmarking-primelab-foundation
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: benchmarking
Source: https://github.com/PrimeLab-Foundation/strata/tree/main/docs/benchmarking
Command: npx skills add https://github.com/PrimeLab-Foundation/strata --skill benchmarking-primelab-foundation

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Running or modifying the strata benchmark suite without knowing its harness internals, result-path contracts, and historical defects leads to invalid comparisons, broken regression gates, and misinterpreted standings. This Skill provides the deep context needed before running benchmarks or interpreting results. ## Core Features & Use Cases - Harness Internals Reference: Documents the orchestrator (bench_main.py), report sections, metrics collection, and standalone deep-dive scripts, including which legacy components must not be recreated. - Standings and CI Tracking: Records quiet-machine sweep results, per-platform CI standings across five legs, and the cross-platform iteration loop for closing rows still behind competitors. - Regression Tooling Guidance: Explains the previous regression checker's three defects (crashing main, header contract drift, stale baseline keys) and the contract thresholds the rebuilt checker must enforce. - Use Case: Before dispatching a benchmark workflow run and fetching CI reports, load this Skill to correctly classify behind-rows as real gaps versus coin-flip noise and to follow the profile-first, A/B-proven fix workflow. ## Quick Start Load the benchmarking skill before running make bench-ci or interpreting benchmark results so the standings and regression gates are read correctly.

Frequently Asked Questions about benchmarking

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I run and interpret strata benchmark results?

Run the tier benchmarks via the Makefile targets, then read standings only within a single report since ranks are computed per machine and round. Absolute times never cross platforms, and headline standings come only from the quiet-machine protocol with controlled power state.

How does strata benchmark against orjson and msgspec?

The suite compares strata against orjson, msgspec, ujson, and the stdlib across loads, dumps, load, dump, query, and search categories at three size tiers. The deciding sweep recorded 63 of 81 rows at #1, with query and search sweeping every row.

Why do benchmark results differ between runs on the same code?

Cross-session runs on an unchanged tree have measured about 30% apart, with Low Power Mode explaining much of it. Rows within roughly 1.00-1.09x are treated as a coin-flip band that only the gated quiet-machine protocol can settle.

What regression thresholds does the benchmark gate enforce?

The rebuilt regression checker must enforce the contract thresholds of greater than 2% on median and p95 and greater than 5% on RSS. The previous tool's 5%-only threshold was part of its brokenness and must not be reproduced.

Can benchmark results be compared across different CI runners?

No, absolute times never cross platforms or runners. Windows runners vary between EPYC Genoa and Milan processors, swinging rows significantly with no code change, so every row must be read against the report's processor line.

What were the defects in the old regression check tool?

The old tool crashed in main() on an AttributeError, its parser looked for outdated report headers so zero rows parsed, and a stale baseline key never matched. Lessons: test main() end-to-end, share one format definition between writer and parser, and key baselines by full filename.