Files
hakmem/docs/status/archive/PHASE_6.17_RESULTS_2025_10_23.md

29 lines
1.5 KiB
Markdown
Raw Normal View History

Phase 6.17 Results (20251023)
What we shipped
- Mid headerless (alloc+free hot path):
- HDR_LIGHT>=1: allocでヘッダ未書込み、freeはページ記述子でMid判定しヘッダ検証回避。
- Transfer Cache gating:
- inbox非空かつ ring->top < trigger のときだけdrainENV: 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 864B参考: HEAD2HEAD_FINAL
- 4T: hakmem 56.9M vs mimalloc 73.9M-23%
- Mid 232KiB本フェーズの代表
- ベスト帯(最近値): 12.913.5M条件により〜14.2M再現)
- TC gatedtrigger=1, drain_max=64: 13.24Mdocs/benchmarks/20251023_052254_MID_TC_TRIGGER
- P0+P1統合: 14.36Mdocs/benchmarks/20251023_045515_MID_P0P1 近傍と併せて)
Takeaways
- Midの「キャッシュヒット時の無駄」を削減TC無条件drain→必要時のみ
- alloc側完全ヘッダレス化でper-op書込みを削減、Active2でbitmap走査/遠征を減少。
- まだ中央経路共有補充・trylock側の残コストが支配するケースがあり、TC/adopt/Active2条件のさらなる調整が有効。
Next
- A/Bcap8/16 × probes2/3 × drain_max32/64, trigger12を固めてベスト固定→ headtohead 保存。
- P2: 空ページの即返還/遅延返還スキャベンジでRSS最適。