docs: Phase v7-2 results + Phase v7-3 design (TLS fast path + page_meta cache)

This commit is contained in:
Moe Charm (CI)
2025-12-12 03:13:13 +09:00
parent 39a3c53dbc
commit 0af409260d
2 changed files with 66 additions and 0 deletions

View File

@ -309,3 +309,34 @@ RegionIdBox / SegmentBox_v7 / PageStatsBox
- v3 世代SmallObjectHeap v7は、「small〜mid を 1 個の SmallHeapCtx + Segment + RegionIdBox で扱う」第2章として設計する。
- まずは C6-only small 帯から v7 を導入し、ULTRA/MID v3 を壊さない形で徐々に適用範囲を広げていく。
### Phase v7-3: C6 TLS Segment Fast Path + Page Metadata Cache
目的:
- Phase v7-2 で明らかになった RegionIdBox binary search のオーバーヘッド(-7% vs legacyを削減する。
- "ほとんどの" C6 free パスで RegionIdBox lookup を避ける設計に改善。
主な最適化:
1. **TLS segment fast hint**:
- SmallHeapCtx_v7 に `tls_seg_base / tls_seg_end / tls_seg` を追加。
- free 初期段階で `if (addr >= tls_seg_base && addr < tls_seg_end)` をチェックして、
ほとんどの C6 free は RegionIdBox を呼ばずに page_idx を計算できるように。
2. **same-page page_meta TLS cache**:
- SmallHeapCtx_v7 に `last_page_base / last_page_end / last_page_meta` を追加。
- 前回と同じページ内の free は page_meta 検索をスキップ1-2% 改善期待)。
3. **RegionIdBox は TLS 範囲外のみ**:
- RegionIdBox は「TLS segment が知らない alloc」POOL / LEGACY / ULTRA 由来)の分類専用に限定。
- C6-only v7 の hot path では RegionIdBox を通さない。
4. **C6-only 維持**:
- Phase v7-3 でも C6 のみに絞る。
- C5/C4 への拡張は、v7 の性能が legacy に追いついた後に検討。
期待結果:
- TLS fast path で RegionIdBox overhead 大部分回避 → -7% から ±0〜+α への改善を目指す。
- SegmentBox_v7 / ColdIface_v7 の API は不変(内部最適化のみ)。
---