75 lines
2.5 KiB
Markdown
75 lines
2.5 KiB
Markdown
|
|
# Phase 5 E7: Frozen Box Prune(次の指示書)
|
|||
|
|
|
|||
|
|
## 背景(E5-2/E5-4 NEUTRAL + E6 NO-GO)
|
|||
|
|
|
|||
|
|
E5-2 / E5-4 / E6 の学び:
|
|||
|
|
- “実験箱” を ENV gate で差し込むだけでも **branch + code size の税**が発生する
|
|||
|
|
- それが勝ち箱の gains を相殺しやすい(特に Zen 系で miss rate が既に低い場合)
|
|||
|
|
|
|||
|
|
狙い:
|
|||
|
|
- **凍結済みの研究箱**を hot path から外し、baseline を “痩せさせる”
|
|||
|
|
- 研究の成果(docs/結果)は残し、コードは消して「戻せる」を **git 履歴**で担保する
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Step 0: 対象(消してよい研究箱)
|
|||
|
|
|
|||
|
|
優先順:
|
|||
|
|
1. E6(ENV snapshot shape): NO-GO、hot path を肥大化させる
|
|||
|
|
2. E5-4(Malloc Tiny Direct): NEUTRAL、malloc wrapper に余計な分岐を足す
|
|||
|
|
3. E5-2(Header write-once): NEUTRAL、alloc hot path 側に分岐を足すなら同様に外す
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Step 1: E6 の実装を削除(doc だけ残す)
|
|||
|
|
|
|||
|
|
- `core/box/env_snapshot_shape_env_box.h` を削除
|
|||
|
|
- `core/front/malloc_tiny_fast.h` / `core/box/tiny_metadata_cache_hot_box.h` /
|
|||
|
|
`core/box/tiny_legacy_fallback_box.h` の E6 分岐を削除(元に戻す)
|
|||
|
|
- `docs/analysis/PHASE5_E6_ENV_SNAPSHOT_SHAPE_AB_TEST_RESULTS.md` は残す(失敗の記録)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Step 2: E5-4 の実装を削除(doc だけ残す)
|
|||
|
|
|
|||
|
|
- `core/box/malloc_tiny_direct_env_box.h` / `core/box/malloc_tiny_direct_stats_box.h` を削除
|
|||
|
|
- `core/box/hak_wrappers.inc.h` の E5-4 追加分岐(`malloc_tiny_direct_enabled()`)を削除
|
|||
|
|
- `docs/analysis/PHASE5_E5_4_MALLOC_TINY_DIRECT_AB_TEST_RESULTS.md` は残す
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Step 3: A/B(削除前/削除後)
|
|||
|
|
|
|||
|
|
削除は ENV で切れないため “ビルド差分 A/B” になる。
|
|||
|
|
|
|||
|
|
1) 削除前(現 HEAD)で 10-run:
|
|||
|
|
```sh
|
|||
|
|
HAKMEM_PROFILE=MIXED_TINYV3_C7_SAFE ./bench_random_mixed_hakmem 20000000 400 1
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
2) 削除後で 10-run:
|
|||
|
|
```sh
|
|||
|
|
HAKMEM_PROFILE=MIXED_TINYV3_C7_SAFE ./bench_random_mixed_hakmem 20000000 400 1
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
判定:
|
|||
|
|
- GO: mean **+0.8% 以上**(“diet” は小粒になりがちなので閾値を下げる)
|
|||
|
|
- ±0.8%: NEUTRAL(消しても OK、保守性メリットで採用可)
|
|||
|
|
- -0.8% 以下: 差し戻し(予想外の最適化阻害がある)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Step 4: 健康診断(必須)
|
|||
|
|
|
|||
|
|
```sh
|
|||
|
|
scripts/verify_health_profiles.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Step 5: ドキュメント更新
|
|||
|
|
|
|||
|
|
- `CURRENT_TASK.md`: E6/E5-4 を “凍結 → 実装削除(doc のみ保持)” と明記
|
|||
|
|
- `docs/analysis/PHASE5_E5_NEXT_INSTRUCTIONS.md`: 次の芯を E7(diet)に更新
|
|||
|
|
|