docs: Phase v7-2 results + Phase v7-3 design (TLS fast path + page_meta cache)
This commit is contained in:
@ -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 は不変(内部最適化のみ)。
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user