Phase 40 準備: FAST v3 perf analysis 完了
- FAST v3 binary で perf record 実施 - 残存 gate function の hotspot 分析完了 Phase 40 候補特定: 1. tiny_header_mode() - alloc hot path (4.56% hotspot) 2. mid_v3_enabled() - free path check 3. mid_v3_debug_enabled() - free path debug check 期待効果: +0.5~1.5% (累積) 次: Step 1 - tiny_header_mode() BENCH_MINIMAL 定数化 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@ -24,9 +24,52 @@
|
||||
- ❌ Makefile から `.o` を外す / コード物理削除は原則しない(Phase 22-2 NO-GO)
|
||||
- A/B は **同一バイナリ**でトグル(ENV / build flag)。別バイナリ比較は layout が混ざる。
|
||||
|
||||
## 3) 次の指示書
|
||||
## 3) 次の指示書(Phase 40)
|
||||
|
||||
TBD(Phase 39 完了)
|
||||
**Phase 40: 残存 gate function の BENCH_MINIMAL 定数化(継続)**
|
||||
|
||||
Phase 39 で +1.98% 達成。FAST v3 perf profile で残存 gate function を調査した結果、以下を特定:
|
||||
|
||||
### 優先候補(HOT path):
|
||||
|
||||
1. **tiny_header_mode()** (`core/tiny_region_id.h:180-200`)
|
||||
- **Hotspot**: `tiny_region_id_write_header` (4.56% self-time)
|
||||
- **Pattern**: lazy-init (`static int g_header_mode = -1` + `getenv()`)
|
||||
- **Default**: TINY_HEADER_MODE_FULL (0)
|
||||
- **BENCH_MINIMAL 値**: 固定 FULL (0)(ヘッダー書き込み有効)
|
||||
- **影響**: alloc hot path、毎回実行
|
||||
- **期待**: +0.3~0.8%
|
||||
|
||||
2. **mid_v3_enabled()** (`core/box/mid_hotbox_v3_env_box.h:14-26`)
|
||||
- **Hotspot**: free path で条件分岐(`g_free_dispatch_ssot` ブロック)
|
||||
- **Pattern**: lazy-init (`static int g_enable = -1` + `getenv()`)
|
||||
- **Default**: 0 (OFF)
|
||||
- **BENCH_MINIMAL 値**: 固定 0
|
||||
- **影響**: free path で毎回 check
|
||||
- **期待**: +0.2~0.5%
|
||||
|
||||
3. **mid_v3_debug_enabled()** (`core/box/mid_hotbox_v3_env_box.h:78-89`)
|
||||
- **Hotspot**: free path で debug log check
|
||||
- **Pattern**: lazy-init (`static int g_debug = -1` + `getenv()`)
|
||||
- **Default**: 0 (OFF)
|
||||
- **BENCH_MINIMAL 値**: 固定 0
|
||||
- **期待**: +0.1~0.3%
|
||||
|
||||
### 保留候補:
|
||||
|
||||
4. **g_free_dispatch_ssot** (`core/box/hak_free_api.inc.h:236-240`)
|
||||
- Phase 39 で「保留」(互換性優先)
|
||||
- Default: 0 (backward compat)
|
||||
- 再検討: BENCH_MINIMAL で固定 1 にすべきか?
|
||||
|
||||
### 実装方針:
|
||||
|
||||
**Step 1**: tiny_header_mode() 単独で A/B test(最大 impact 候補)
|
||||
**Step 2**: mid_v3_enabled() 単独で A/B test
|
||||
**Step 3**: mid_v3_debug_enabled() を追加
|
||||
**Step 4**: 累積効果確認(GO 閾値: +0.5%)
|
||||
|
||||
**GO 条件**: build-level 変更のため +0.5% 以上
|
||||
|
||||
## 4) 直近のログ(要点だけ)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user