diff --git a/CURRENT_TASK.md b/CURRENT_TASK.md index 438c11ed..0fb8fee4 100644 --- a/CURRENT_TASK.md +++ b/CURRENT_TASK.md @@ -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) 直近のログ(要点だけ) diff --git a/perf.data.fast_v3 b/perf.data.fast_v3 new file mode 100644 index 00000000..e3bfb0cf Binary files /dev/null and b/perf.data.fast_v3 differ diff --git a/perf.data.fast_v3.old b/perf.data.fast_v3.old new file mode 100644 index 00000000..fccb49df Binary files /dev/null and b/perf.data.fast_v3.old differ