Calibration
Methodology
A benchmark you can't reproduce is marketing. This page documents exactly how serialbench produces every number on this site.
Workloads
Each serializer parses, generates, and (where supported) streams the same documents at each configured size. Operations run after warmup iterations; throughput is reported as iterations per second, memory as allocated and retained bytes measured around the operation.
Environments
Results are collected per GitHub-hosted runner platform and Ruby version, then aggregated into one resultset. Runners differ in CPU and memory — compare within an environment, not across environments, unless you are comparing environments.
Fairness limits
Libraries that fail to load or lack an operation are skipped for that leg rather than counted as zero. A dot missing from the availability matrix means no measurement exists — never assume a score. Microbenchmarks measure these workloads, not yours.
Reproduce
Cloneserialbench/serialbench, then runbundle exec serialbench environment execute <env> <benchmark> <out>. The raw YAML next to every chart is the exact output of that command.