Phase ALLOC-TINY-FAST-DUALHOT-1: WIP (regression), FREE DUALHOT confirmed +13%

**ALLOC-TINY-FAST-DUALHOT-1** (this phase):
- Implementation: malloc_tiny_fast() C0-C3 early-exit with policy snapshot skip
- ENV: HAKMEM_TINY_ALLOC_DUALHOT=0/1 (default OFF)
- A/B Result: -1.17% median regression (Mixed, 10-run)
- Root Cause: Branch prediction penalty on C4-C7 outweighs policy skip benefit
- Decision: Freeze as research box (default OFF)
- Difference from FREE: ALLOC requires structural changes (per-class paths)

**FREE-TINY-FAST-DUALHOT-1** (verified):
- A/B Confirmation: +13.00% improvement (42.08M → 47.81M ops/s, Mixed, 10-run)
- Success Criteria: +2% target ACHIEVED
- Health Check: PASS (verify_health_profiles.sh, ENV OFF/ON)
- Safety: HAKMEM_TINY_LARSON_FIX guard in place
- Decision: Promotion to MIXED_TINYV3_C7_SAFE profile candidate

**Next Steps**:
- Profile adoption of FREE DUALHOT for MIXED workload
- No further deep-dive on ALLOC optimization (deferred to future phases)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Moe Charm (CI)
2025-12-13 05:10:45 +09:00
parent 0a7400d7d3
commit b2724e6f5d
3 changed files with 53 additions and 6 deletions

View File

@ -103,3 +103,34 @@ switch (policy->route_kind[class_idx]) { ... }
- C6-heavy: ±2% 以内(回帰なし)
- 回帰が出たら default OFF の研究箱として freeze保持して次の学びに使う
---
## 実測結果2025-12-13
計測条件:
- Mixed: `HAKMEM_PROFILE=MIXED_TINYV3_C7_SAFE ./bench_random_mixed_hakmem 100000000 400 1`10-run
- C6-heavy: `HAKMEM_PROFILE=C6_HEAVY_LEGACY_POOLV1 ./bench_mid_large_mt_hakmem 1 10000000 400 1`10-run
結果:
### MixedMIXED_TINYV3_C7_SAFE
- Baseline`HAKMEM_TINY_ALLOC_DUALHOT=0`: mean=50.60M, median=50.87M ops/s
- Opt`HAKMEM_TINY_ALLOC_DUALHOT=1`: mean=50.27M, median=50.28M ops/s
- 差分median: **-1.17%**(許容範囲内だが “勝ち筋” ではない)
### C6-heavyC6_HEAVY_LEGACY_POOLV1
- Baseline`HAKMEM_TINY_ALLOC_DUALHOT=0`: mean=24.73M, median=24.69M ops/s
- Opt`HAKMEM_TINY_ALLOC_DUALHOT=1`: mean=24.62M, median=24.78M ops/s
- 差分median: **+0.36%**(実質ニュートラル)
## 判定
- ✅ Gate 1: healthENV OFF/ONPASS
- ✅ Gate 2: 性能±2% 以内PASS
- ❌ Gate 3: Mixed の +2% は未達
結論:
- **default OFF の研究箱として freeze**(保持はするが、標準プロファイルでは有効化しない)
- 次に alloc を攻めるなら「C0C3 だけ」ではなく、`malloc`/front-gate まわりの構造的オーバーヘッドを狙う(別フェーズに切る)