Files
hakmem/docs/analysis/FINAL_PERF_STATUS_2025XX.md
Moe Charm (CI) 8f18963ad5 Phase 36-37: TinyHotHeap v2 HotBox redesign and C7 current_page policy fixes
- Redefine TinyHotHeap v2 as per-thread Hot Box with clear boundaries
- Add comprehensive OS statistics tracking for SS allocations
- Implement route-based free handling for TinyHeap v2
- Add C6/C7 debugging and statistics improvements
- Update documentation with implementation guidelines and analysis
- Add new box headers for stats, routing, and front-end management
2025-12-08 21:30:21 +09:00

2.2 KiB
Raw Blame History

FINAL_PERF_STATUS_2025XX

箱理論で進めた v1 系の最終スナップショット。ベスト構成と残差、次の大きなテーマを一枚にまとめる。

ベスト構成(デフォルト想定)

  • Tiny: HAKMEM_TINY_HEAP_PROFILE=C7_SAFE, HAKMEM_TINY_HOTHEAP_V2=0, HAKMEM_TINY_STATS_BOX=1, HAKMEM_TINY_STATS_BATCH=0, HAKMEM_TINY_LARSON_FIX=1
  • Pool: HAKMEM_POOL_V2_ENABLED=0(回帰防止のため v1 を標準)
  • HugePage/ヘッダ-light/実験系: すべて OFF研究箱扱い

性能一覧(リリースビルド、代表プロファイル)

  • C7-only (ws=64, iters=20k): ≈40.6M ops/s
    • mimic/system との差: mimalloc ≈112.9M, system ≈92.1M → HAKMEM は mimic の ~36%、system の ~44%
  • Mixed 161024B (ws=256, iters=20k): ≈3839M ops/sv2 OFF, C7_SAFE
    • mimalloc/system は未計測同条件だが C7-only 比率から推定し ~40% 前後
  • mid/smallmid (bench_mid_large_mt_hakmem 1 1,000,000 400 1, v2 OFF): ≈27.428.4M ops/s
    • mimalloc ≈54.2M → HAKMEM は ~50% 近辺

埋めた「大きな穴」

  • Tiny front/route フラット化size→class→route→alloc/free を 1 LUT+switch に縮約)
  • Warm Pool / Superslab OS stats で pf/sys の大穴を特定し、OS alloc/free はほぼゼロ化
  • SS_OS_STATS/Cold Stats Box で Superslab⇔OS/Stats を可視化し、デフォルトは A/B で安全側
  • C7 SAFE TinyHeap を標準に固定v2 は研究箱。Tiny v2 は完全ゲート付きでデフォルト OFF
  • Pool v1/v2 ゲート追加:HAKMEM_POOL_V2_ENABLED=0 を標準にし、回帰を即切り戻せるようにした

ここから先v3 テーマ候補)

  • TinyHeap v2 をゼロから設計C5C7 を統合する HotHeap、現在の実験 v2 とは別物)
  • First-touch / header-light / HugePage の本格対応bench 専用から昇格させるか検証)
  • mid/smallmid の pool 系さらなる軽量化 or 別フロント
  • Tiny front 以外mid/largeでの route フラット化・命令数削減

備考: v2 系・ヘッダ light・HugePage はすべて「明示的に ENV を立てた研究モード」のまま据え置き。標準ベンチ/比較は上記ベスト構成で見る。***