65 lines
2.0 KiB
Bash
65 lines
2.0 KiB
Bash
|
|
#!/usr/bin/env bash
|
|||
|
|
set -euo pipefail
|
|||
|
|
|
|||
|
|
# Aggregate suite runner: tiny-hot triad, random-mixed triad, comprehensive pair, optional app benches
|
|||
|
|
# Usage: scripts/run_suite_compare.sh [cycles_hot] [cycles_mixed] [with_apps]
|
|||
|
|
# cycles_hot : tiny hot cycles (default 80000)
|
|||
|
|
# cycles_mixed : random mixed cycles (default 120000)
|
|||
|
|
# with_apps : 0/1 (default 0) — if 1, runs scripts/run_apps_with_hakmem.sh
|
|||
|
|
|
|||
|
|
ROOT_DIR=$(cd "$(dirname "$0")/.." && pwd)
|
|||
|
|
cd "$ROOT_DIR"
|
|||
|
|
|
|||
|
|
cycles_hot=${1:-80000}
|
|||
|
|
cycles_mixed=${2:-120000}
|
|||
|
|
with_apps=${3:-0}
|
|||
|
|
|
|||
|
|
TS=$(date +%Y%m%d_%H%M%S)
|
|||
|
|
OUTDIR="bench_results/suite_${TS}"
|
|||
|
|
mkdir -p "$OUTDIR"
|
|||
|
|
|
|||
|
|
log() { echo "[$(date +%H:%M:%S)] $*"; }
|
|||
|
|
|
|||
|
|
log "tiny hot triad ($cycles_hot)"
|
|||
|
|
bash scripts/run_tiny_hot_triad.sh "$cycles_hot" | tee "$OUTDIR/tiny_hot.log" >/dev/null || true
|
|||
|
|
th_csv=$(sed -n 's/^\[done\] CSV: \(.*\)$/\1/p' "$OUTDIR/tiny_hot.log" | tail -n1)
|
|||
|
|
|
|||
|
|
log "random mixed triad ($cycles_mixed)"
|
|||
|
|
bash scripts/run_random_mixed_matrix.sh "$cycles_mixed" | tee "$OUTDIR/random_mixed.log" >/dev/null || true
|
|||
|
|
rm_csv=$(sed -n 's/^\[done\] CSV: \(.*\)$/\1/p' "$OUTDIR/random_mixed.log" | tail -n1)
|
|||
|
|
|
|||
|
|
log "comprehensive pair"
|
|||
|
|
bash scripts/run_comprehensive_pair.sh | tee "$OUTDIR/comp_pair.log" >/dev/null || true
|
|||
|
|
cp_csv=$(sed -n 's/^\[done\] CSV: \(.*\)$/\1/p' "$OUTDIR/comp_pair.log" | tail -n1)
|
|||
|
|
|
|||
|
|
if [[ "$with_apps" == "1" ]]; then
|
|||
|
|
log "apps (LD-safe)"
|
|||
|
|
bash scripts/run_apps_with_hakmem.sh | tee "$OUTDIR/apps.log" >/dev/null || true
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
summary="$OUTDIR/summary.md"
|
|||
|
|
{
|
|||
|
|
echo "# HAKMEM vs System vs mimalloc – Suite ($TS)"
|
|||
|
|
echo ""
|
|||
|
|
echo "- tiny hot triad CSV: \
|
|||
|
|
\
|
|||
|
|
$th_csv"
|
|||
|
|
echo "- random mixed triad CSV: \
|
|||
|
|
\
|
|||
|
|
$rm_csv"
|
|||
|
|
echo "- comprehensive pair CSV: \
|
|||
|
|
\
|
|||
|
|
$cp_csv"
|
|||
|
|
if [[ "$with_apps" == "1" ]]; then
|
|||
|
|
echo "- apps log: $OUTDIR/apps.log"
|
|||
|
|
fi
|
|||
|
|
echo ""
|
|||
|
|
echo "Quick peek (head):"
|
|||
|
|
echo ""; echo '```'; sed -n '1,20p' "$th_csv"; echo '```'
|
|||
|
|
echo ""; echo '```'; sed -n '1,20p' "$rm_csv"; echo '```'
|
|||
|
|
echo ""; echo '```'; sed -n '1,30p' "$cp_csv"; echo '```'
|
|||
|
|
} > "$summary"
|
|||
|
|
|
|||
|
|
log "done → $summary"
|
|||
|
|
|