- 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
32 lines
2.2 KiB
Markdown
32 lines
2.2 KiB
Markdown
# 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 を立てた研究モード」のまま据え置き。標準ベンチ/比較は上記ベスト構成で見る。***
|