- 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
2.2 KiB
2.2 KiB
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 16–1024B (ws=256, iters=20k): ≈38–39M ops/s(v2 OFF, C7_SAFE)
- mimalloc/system は未計測同条件だが C7-only 比率から推定し ~40% 前後
- mid/smallmid (bench_mid_large_mt_hakmem 1 1,000,000 400 1, v2 OFF): ≈27.4–28.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 をゼロから設計(C5–C7 を統合する HotHeap、現在の実験 v2 とは別物)
- First-touch / header-light / HugePage の本格対応(bench 専用から昇格させるか検証)
- mid/smallmid の pool 系さらなる軽量化 or 別フロント
- Tiny front 以外(mid/large)での route フラット化・命令数削減
備考: v2 系・ヘッダ light・HugePage はすべて「明示的に ENV を立てた研究モード」のまま据え置き。標準ベンチ/比較は上記ベスト構成で見る。***