Files
hakmem/benchmarks/scripts/comprehensive/run_suite_compare.sh
Moe Charm (CI) 52386401b3 Debug Counters Implementation - Clean History
Major Features:
- Debug counter infrastructure for Refill Stage tracking
- Free Pipeline counters (ss_local, ss_remote, tls_sll)
- Diagnostic counters for early return analysis
- Unified larson.sh benchmark runner with profiles
- Phase 6-3 regression analysis documentation

Bug Fixes:
- Fix SuperSlab disabled by default (HAKMEM_TINY_USE_SUPERSLAB)
- Fix profile variable naming consistency
- Add .gitignore patterns for large files

Performance:
- Phase 6-3: 4.79 M ops/s (has OOM risk)
- With SuperSlab: 3.13 M ops/s (+19% improvement)

This is a clean repository without large log files.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-05 12:31:14 +09:00

65 lines
2.0 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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"