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>
1.5 KiB
1.5 KiB
Phase 6.17 Results (2025‑10‑23)
What we shipped
- Mid headerless (alloc+free hot path):
- HDR_LIGHT>=1: allocでヘッダ未書込み、freeはページ記述子でMid判定しヘッダ検証回避。
- Transfer Cache gating:
- inbox非空かつ ring->top < trigger のときだけdrain(ENV: HAKMEM_TC_DRAIN_TRIGGER, default 1)。
- drain上限(ENV: HAKMEM_TC_DRAIN_MAX, 推奨 64)。
- Mid Active Page 2枚化:
- TLS active pageをa/bの2枚に拡張。枯渇時はslot解放。
- Makefile: RING_CAPをビルド時切替(8/16)
Bench (10s, larson, BURST)
- Tiny 8–64B(参考: HEAD2HEAD_FINAL)
- 4T: hakmem 56.9M vs mimalloc 73.9M(-23%)
- Mid 2–32KiB(本フェーズの代表)
- ベスト帯(最近値): 12.9–13.5M(条件により〜14.2M再現)
- TC gated(trigger=1, drain_max=64): 13.24M(docs/benchmarks/20251023_052254_MID_TC_TRIGGER)
- P0+P1統合: 14.36M(docs/benchmarks/20251023_045515_MID_P0P1 近傍と併せて)
Takeaways
- Midの「キャッシュヒット時の無駄」を削減(TC無条件drain→必要時のみ)。
- alloc側完全ヘッダレス化でper-op書込みを削減、Active2でbitmap走査/遠征を減少。
- まだ中央経路(共有補充・trylock)側の残コストが支配するケースがあり、TC/adopt/Active2条件のさらなる調整が有効。
Next
- A/B(cap8/16 × probes2/3 × drain_max32/64, trigger1–2)を固めてベスト固定→ head‑to‑head 保存。
- P2: 空ページの即返還/遅延返還+スキャベンジでRSS最適。