Phase v10: Freeze v7 as C5/C6-only research preset
Documentation: Baseline fixed per Phase v10
- HAKMEM_V2_GENERATION_SUMMARY.md:
- v7 repositioned as 「C5/C6 專用研究箱」
- Mixed baseline: HAKMEM_SMALL_HEAP_V7_ENABLED=0 (OFF)
- Added Phase v7-7 (Learner), Phase v10 (legacy removal)
- Learner performance: +127% on C5/C6 workload
- Size class table: segregated Mixed (v7 OFF) vs C5/C6 preset (v7 ON)
- ENV_PROFILE_PRESETS.md:
- MIXED_TINYV3_C7_SAFE: explicitly v7 OFF (Mixed baseline)
- NEW: C5_C6_SMALL_HEAP_V7_LEARNER profile
- Learner dynamic route switching documentation
- Test commands and expected performance (38-39M ops/s)
- Phase v10 deprecation notice (v3/v4/v5 removed)
Purpose:
- Set clear baseline: v7 OFF for Mixed, ON for C5/C6 benchmarks
- Document Learner preset for future reference
- No code changes (docs-only checkpoint)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@ -12,6 +12,7 @@
|
||||
- C7-only SmallObject v3 + Tiny front v3 + LUT + fast classify ON。
|
||||
- v4 系(C6/C7 v4、fast classify v4、small segment v4)はすべて OFF。
|
||||
- Tiny/Pool v2 もすべて OFF。
|
||||
- **v7 (C5/C6) は OFF** (Phase v10: Mixed 本線では v7 無効化、C5/C6 専用プリセット参照)
|
||||
- C6 は凍結中(Tiny/SmallObject の特別扱いなし)。mid/pool の通常経路に任せる。
|
||||
|
||||
### ENV 最小セット(Release)
|
||||
@ -279,6 +280,56 @@ perf record -F 5000 --call-graph dwarf -e cycles:u \
|
||||
|
||||
---
|
||||
|
||||
## Research Profile 3: C5_C6_SMALL_HEAP_V7_LEARNER(SmallObject v7 C5/C6 専用プリセット, Phase v10)
|
||||
|
||||
### 目的
|
||||
- **C5/C6 サイズ帯専用(Mixed 本線では使わない)**
|
||||
- SmallObject v7 + Learner で動的ルート最適化を検証。
|
||||
- Learner がワークロード比率を監視し、C5 route を v7 ↔ MID_v3 で自動切り替え。
|
||||
- Phase v10 で v7 を「C5/C6 専用プリセット」として凍結し、本プリセットで完全に管理。
|
||||
|
||||
### 性能実績
|
||||
- C5/C6 mixed (200-500B, 300K iter):
|
||||
- **v7 + Learner: 38.7M ops/s** (+127% vs Legacy)
|
||||
- Learner route switch: C5 ratio 28% < threshold 30% → MID_v3 自動切り替え
|
||||
|
||||
### ENV(v7 C5/C6 opt-in)
|
||||
```sh
|
||||
HAKMEM_BENCH_MIN_SIZE=200
|
||||
HAKMEM_BENCH_MAX_SIZE=500
|
||||
HAKMEM_SMALL_HEAP_V7_ENABLED=1 # ★ v7 ON
|
||||
HAKMEM_SMALL_HEAP_V7_CLASSES=0x60 # ★ C5(0x20) + C6(0x40)
|
||||
# Learner は v7 enabled 時にデフォルト ON (Phase v10)
|
||||
# HAKMEM_SMALL_LEARNER_V7_ENABLED=0 で個別無効化可
|
||||
```
|
||||
|
||||
### テストコマンド
|
||||
```sh
|
||||
# C5/C6 混合(50/50)
|
||||
HAKMEM_BENCH_MIN_SIZE=200 HAKMEM_BENCH_MAX_SIZE=500 \
|
||||
HAKMEM_SMALL_HEAP_V7_ENABLED=1 HAKMEM_SMALL_HEAP_V7_CLASSES=0x60 \
|
||||
./bench_random_mixed_hakmem 300000 400 1
|
||||
|
||||
# C6 heavy(90% C6, 10% C5)→ Learner route switch トリガー
|
||||
HAKMEM_BENCH_MIN_SIZE=200 HAKMEM_BENCH_MAX_SIZE=500 \
|
||||
HAKMEM_SMALL_HEAP_V7_ENABLED=1 HAKMEM_SMALL_HEAP_V7_CLASSES=0x60 \
|
||||
./bench_allocators --allocator hakmem --scenario c6heavy --iterations 10
|
||||
```
|
||||
|
||||
### 期待値
|
||||
- Throughput: **38-39M ops/s** (C5/C6 mixed)
|
||||
- Learner log: `[LEARNER_V7] C5 route switch: V7 → MID_V3` (C5 ratio < 30%)
|
||||
- Route decision: `[POLICY_V7_INIT] C5: v7, C6: v7`
|
||||
|
||||
### 注意
|
||||
- **Mixed 本線(16-1040B)では v7 OFF** (HAKMEM_SMALL_HEAP_V7_ENABLED=0)
|
||||
- v7 は C5/C6 専用、他のサイズ帯には影響なし
|
||||
- Learner は C5 の動的最適化のみ(C6 は固定 v7)
|
||||
- Phase v10 で v3/v4/v5 削除済み(古い ENV は無視される)
|
||||
|
||||
---
|
||||
|
||||
### 共通注意
|
||||
- プリセットから外れて単発の ENV を積み足すと再現が難しくなるので、まずは上記いずれかからスタートし、変更点を必ずメモしてください。
|
||||
- v2 系(Pool v2 / Tiny v2)はベンチごとに opt-in。不要なら常に 0。
|
||||
- **Phase v10**: v3/v4/v5 は削除されました(古い ENV は無視されます)。C5/C6 最適化には本プリセット(v7+Learner)を使用してください。
|
||||
|
||||
Reference in New Issue
Block a user