This directory holds the captured benchmark results and the script that turns them into the graphs shown in the README and BENCHMARKS documents.
results/rptest-threads.csv- rptest throughput sweep (random[16, 8000]bytes, linear falloff, cross-thread frees) for 1 to 16 threads, one row per allocator and thread count. The exact rptest command is recorded as a comment on the first line.results/mimalloc-bench-allt.csv- the mimalloc-benchalltsuite results, in the mimalloc-benchbenchres.csvformat (benchmark allocator elapsed rss user sys page-faults page-reclaims).images/- the generated PNG graphs.plot.py- regenerates the graphs from the result files. Requiresmatplotlib.
Both result files are complete and unfiltered. For readability the graphs omit allocators
that are more than 4x slower than rpmalloc on a given benchmark, and drop allocators that
failed many benchmarks entirely; this filtering happens in plot.py, not in the data. In the
allt data a benchmark an allocator crashed on is recorded with a zero or blank elapsed time,
or with zero user+sys CPU time when it died before doing any work; plot.py treats both as
failures rather than instant results.
python3 plot.py
See BENCHMARKS.md for the machine configuration, the allocator list and versions, and instructions for regenerating the underlying data.