This benchmark measures how the same Ruby program performs across Ruby 2.7 through Ruby 4.0.
Each version runs in its official Docker image. The suite uses fresh process repeats and produces raw JSON, a Markdown report, and an HTML dashboard.
The application workload combines JSON, SHA256, Base64, a shared cache, threads, and allocation pressure.
Microbenchmarks cover JSON parsing and generation, SHA256, Base64, regular expressions, integer sorting, Hash churn, Marshal, and zlib.
Light and heavy profiles change the payload size and allocation pressure.
Docker and Python 3.9 or newer are required. Ruby does not need to be installed locally.
bash scripts/bench_docker.sh --pullThe full run uses five repeats. The application has a 20 second warmup and a 10 minute measurement. Microbenchmarks have a 5 second warmup and a 10 second measurement.
List the resolved images with bash scripts/bench_docker.sh --list-images.
Results are written to results, which is ignored by Git. Run the benchmark on an idle machine with a fixed Docker CPU and memory allocation.
MIT