2025-12-14 16:28:23 +09:00
|
|
|
|
# Phase 6: Front FastLane(Layer Collapse)Next Instructions(昇格)
|
|
|
|
|
|
|
|
|
|
|
|
## Status
|
|
|
|
|
|
|
|
|
|
|
|
- Phase 6 FastLane は **✅ GO(+11.13% Mixed 10-run)**
|
|
|
|
|
|
- 結果: `docs/analysis/PHASE6_FRONT_FASTLANE_1_AB_TEST_RESULTS.md`
|
|
|
|
|
|
- 実装: `docs/analysis/PHASE6_FRONT_FASTLANE_1_IMPLEMENTATION_REPORT.md`
|
|
|
|
|
|
- 設計: `docs/analysis/PHASE6_FRONT_FASTLANE_1_DESIGN.md`
|
|
|
|
|
|
|
|
|
|
|
|
## 0. 目的
|
|
|
|
|
|
|
|
|
|
|
|
FastLane を本線昇格(default ON / opt-out)し、以後の baseline を引き上げる。
|
|
|
|
|
|
|
|
|
|
|
|
## 1. 昇格(本線化)
|
|
|
|
|
|
|
|
|
|
|
|
1) **default ON**
|
|
|
|
|
|
- ENV: `HAKMEM_FRONT_FASTLANE=0/1`
|
|
|
|
|
|
- default: **1**(opt-out は `HAKMEM_FRONT_FASTLANE=0`)
|
|
|
|
|
|
|
|
|
|
|
|
2) **プリセット ON**
|
|
|
|
|
|
- `core/bench_profile.h` の主要プロファイルで `bench_setenv_default("HAKMEM_FRONT_FASTLANE","1")`
|
|
|
|
|
|
|
|
|
|
|
|
3) **安全ゲート(Fail-Fast)**
|
|
|
|
|
|
- 初期化前(`!g_initialized`)は FastLane を使わず既存 wrapper にフォールバック
|
|
|
|
|
|
|
|
|
|
|
|
## 2. A/B(最終確認)
|
|
|
|
|
|
|
|
|
|
|
|
Mixed 10-run(clean env):
|
|
|
|
|
|
|
|
|
|
|
|
OFF:
|
|
|
|
|
|
```sh
|
|
|
|
|
|
HAKMEM_FRONT_FASTLANE=0 scripts/run_mixed_10_cleanenv.sh
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
ON:
|
|
|
|
|
|
```sh
|
|
|
|
|
|
HAKMEM_FRONT_FASTLANE=1 scripts/run_mixed_10_cleanenv.sh
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
判定(Mixed 10-run mean):
|
|
|
|
|
|
- GO: **+1.0% 以上**
|
|
|
|
|
|
- NEUTRAL: **±1.0%**(default ON は維持せず、再検討)
|
|
|
|
|
|
- NO-GO: **-1.0% 以下**(即 rollback)
|
|
|
|
|
|
|
|
|
|
|
|
## 3. 健康診断(必須)
|
|
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
|
scripts/verify_health_profiles.sh
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 4. Rollback
|
|
|
|
|
|
|
|
|
|
|
|
- ENV: `HAKMEM_FRONT_FASTLANE=0`
|
|
|
|
|
|
- あるいは本線 default を戻す(diff 1 箇所)
|
|
|
|
|
|
|
|
|
|
|
|
## 5. 次の候補(Phase 6-2)
|
|
|
|
|
|
|
|
|
|
|
|
FastLane 内で `tiny_get_max_size()` を毎回呼ぶのは、E4-2 の勝ち筋(wrapper snapshot)と逆方向なので、次はここを薄くする:
|
|
|
|
|
|
|
|
|
|
|
|
- `malloc_wrapper_env_get()` 由来の `tiny_max_size_256`(または max_size 値)を FastLane に渡して “call を消す”
|
|
|
|
|
|
- ただし “FastLane で同じ判定を二度しない” を守る(境界 1 箇所)
|
2025-12-14 17:09:57 +09:00
|
|
|
|
|
|
|
|
|
|
また、FastLane free 側は `free_tiny_fast()` と Tiny header 検証が二重になりやすいので、次の指示書で重複排除を優先する:
|
|
|
|
|
|
- `docs/analysis/PHASE6_FRONT_FASTLANE_2_FREE_DEDUP_NEXT_INSTRUCTIONS.md`
|