#!/usr/bin/env bash set -euo pipefail # Run comprehensive bench for HAKMEM (direct) and mimalloc (direct) and parse to CSV # Usage: scripts/run_comprehensive_pair.sh ROOT_DIR=$(cd "$(dirname "$0")/.." && pwd) cd "$ROOT_DIR" TS=$(date +%Y%m%d_%H%M%S) OUTDIR="bench_results/comp_pair_${TS}" mkdir -p "$OUTDIR" echo "[build] HAKMEM + mi direct-link…" make -s bench_fast >/dev/null make -s bench_comprehensive_mi >/dev/null echo "[run] HAKMEM (direct)" HAKMEM_TINY_TLS_SLL=${HAKMEM_TINY_TLS_SLL:-1} \ HAKMEM_TINY_MAG_CAP=${HAKMEM_TINY_MAG_CAP:-128} \ HAKMEM_WRAP_TINY=1 \ ./bench_comprehensive_hakmem | tee "$OUTDIR/hakmem.log" >/dev/null echo "[run] mimalloc (direct)" export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:-}:$ROOT_DIR/mimalloc-bench/extern/mi/out/release" ./bench_comprehensive_mi | tee "$OUTDIR/mimalloc.log" >/dev/null echo "[parse] to CSV" python3 scripts/parse_comprehensive_logs.py "$OUTDIR" > "$OUTDIR/summary.csv" echo "[done] CSV: $OUTDIR/summary.csv" sed -n '1,60p' "$OUTDIR/summary.csv" || true