Benchmarks

xemu ships three benchmark kernels under xkernels/tests/benchmark/.

BenchmarkIterationsCharacteristic
Dhrystone500 000ALU / GPR / call-heavy
CoreMark1 000Mixed integer + list / matrix
MicroBench10 sub-benchesIncludes C++ workloads (qsort-cpp, string)

Running

cd xkernels/tests/benchmark/dhrystone   && make run
cd xkernels/tests/benchmark/coremark    && make run
cd xkernels/tests/benchmark/microbench  && make run

Always run with DEBUG=n for stable timing.

Published scores (MacBook Air M4)

BenchmarkMarks
MicroBench718
CoreMark499
Dhrystone255

Perf pipeline

To regenerate the measurement baseline:

bash scripts/perf/bench.sh   # writes docs/perf/baselines/<today>/data/bench.csv
bash scripts/perf/sample.sh  # writes <today>/data/<workload>.sample.txt
python3 scripts/perf/render.py   # writes <today>/graphics/*.svg

Run from ProjectX/ root. See ../internals/performance.md for how buckets are interpreted and ../PROGRESS.md §Phase 9 for landed optimisations.

Reproducing the published numbers

  • Use make run (not target/release/xdb directly). The Makefile sets the right boot layout.
  • Leave DEBUG unset (defaults to n).
  • Close other CPU-heavy processes. macOS samply especially is sensitive to background load; user_s is the stable metric, real_s is noisy.
  • Take the mean of 3 runs for any comparison.