From 16c7bce2d34000f18b3102a5affcf71ac0bec8ff Mon Sep 17 00:00:00 2001 From: "Moe Charm (CI)" Date: Sun, 14 Dec 2025 20:45:23 +0900 Subject: [PATCH] Update CURRENT_TASK: Phase 11 NO-GO (-8.35%), identify next targets MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Phase 11 failed due to design flaw: - maybe_fast() API called in inline hot path functions - ctor_mode check accumulated on every call - Compiler optimization inhibited Next candidates: - unified_cache_push (~3.39% self%, marginal ROI) - Perf profiling to identify next high-cost path 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- CURRENT_TASK.md | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/CURRENT_TASK.md b/CURRENT_TASK.md index 8d640ad0..0be10f5c 100644 --- a/CURRENT_TASK.md +++ b/CURRENT_TASK.md @@ -70,15 +70,31 @@ - ENV: `HAKMEM_FREE_TINY_FAST_MONO_LEGACY_DIRECT=0/1`(default ON / opt-out) - Rollback: `export HAKMEM_FREE_TINY_FAST_MONO_LEGACY_DIRECT=0` -### Next: Phase 11(次の芯) +### Phase 11 ENV Snapshot "maybe-fast" API — ❌ NO-GO / FROZEN(設計ミス) -Perf(Phase 10 後, Mixed)で残っている “次の固定費” は **ENV snapshot 系(`hakmem_env_snapshot*` / `tiny_front_v3_snapshot_get`)** と **unified_cache_push** が目立つ。 +結果: Mixed 10-run mean **-8.35%**(51.65M → 47.33M ops/s)。`hakmem_env_snapshot_maybe_fast()` を inline 関数内で呼ぶことによる固定費が予想外に大きく、大幅な劣化が発生。 + +根本原因: +- `maybe_fast()` を `tiny_legacy_fallback_free_base()`(inline)内で呼んだことで、毎回の free で `ctor_mode` check が走る +- 既存設計(関数入口で 1 回だけ `enabled()` 判定)と異なり、inline helper 内での API 呼び出しは固定費が累積 +- コンパイラ最適化が阻害される(unconditional call vs conditional branch) + +教訓: ENV gate 最適化は **gate 自体**を改善すべきで、call site を変更すると逆効果。 + +- 指示書(完了): `docs/analysis/PHASE11_ENV_SNAPSHOT_MAYBE_FAST_1_NEXT_INSTRUCTIONS.md` +- 実装 + A/B: `docs/analysis/PHASE11_ENV_SNAPSHOT_MAYBE_FAST_1_AB_TEST_RESULTS.md` +- コミット: `ad73ca554`(NO-GO 記録のみ、実装は完全 rollback) +- 状態: **FROZEN**(ENV snapshot 参照の固定費削減は別アプローチが必要) + +### Next: Phase 12(次の芯) + +Perf(Phase 10 後, Mixed)で残っている "次の固定費": +1. ~~ENV snapshot 系~~(Phase 11 で NO-GO、別アプローチ要検討) +2. **unified_cache_push**(~3.39% self%、marginal ROI ~+1.0% と予測) 候補(GO を狙う小パッチ): -1) **Phase 11: ENV Snapshot “maybe-fast” API(enabled+snapshot+front_snap を 1 回に集約)** - - 目的: `tiny_legacy_fallback_free_base()` を中心に、`hakmem_env_snapshot_enabled()` / `hakmem_env_snapshot()` / `tiny_front_v3_snapshot_get()` の固定費を削減 - - 方針: ENV gate は維持しつつ、hot path は “cached gate + cached front_snap ptr” だけで判定(Fail-Fast / refresh は既存の箱境界へ) - - 指示書: `docs/analysis/PHASE11_ENV_SNAPSHOT_MAYBE_FAST_1_NEXT_INSTRUCTIONS.md` +- perf プロファイルで次の高コスト箇所を特定 +- または Phase 6-11 累積効果を再測定して次の戦略を決定 ## 更新メモ(2025-12-14 Phase 5 E5-3 Analysis - Strategic Pivot)