Phase MID-V35-HOTPATH-OPT-1 complete: +7.3% on C6-heavy
Step 0: Geometry SSOT
- New: core/box/smallobject_mid_v35_geom_box.h (L1/L2 consistency)
- Fix: C6 slots/page 102→128 in L2 (smallobject_cold_iface_mid_v3.c)
- Applied: smallobject_mid_v35.c, smallobject_segment_mid_v3.c
Step 1-3: ENV gates for hotpath optimizations
- New: core/box/mid_v35_hotpath_env_box.h
* HAKMEM_MID_V35_HEADER_PREFILL (default 0)
* HAKMEM_MID_V35_HOT_COUNTS (default 1)
* HAKMEM_MID_V35_C6_FASTPATH (default 0)
- Implementation: smallobject_mid_v35.c
* Header prefill at refill boundary (Step 1)
* Gated alloc_count++ in hot path (Step 2)
* C6 specialized fast path with constant slot_size (Step 3)
A/B Results:
C6-heavy (257–768B): 8.75M→9.39M ops/s (+7.3%, 5-run mean) ✅
Mixed (16–1024B): 9.98M→9.96M ops/s (-0.2%, within noise) ✓
Decision: FROZEN - defaults OFF, C6-heavy推奨ON, Mixed現状維持
Documentation: ENV_PROFILE_PRESETS.md updated
🤖 Generated with Claude Code
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@ -48,6 +48,19 @@ HAKMEM_TINY_HEAP_STATS=1
|
||||
HAKMEM_TINY_HEAP_STATS_DUMP=1
|
||||
HAKMEM_SMALL_HEAP_V3_STATS=1
|
||||
```
|
||||
- **Phase MID-V35-HOTPATH-OPT-1** (FROZEN - research only):
|
||||
```sh
|
||||
HAKMEM_MID_V35_HEADER_PREFILL=1 # refill境界でheader先行書き
|
||||
HAKMEM_MID_V35_HOT_COUNTS=0 # alloc_count削除
|
||||
HAKMEM_MID_V35_C6_FASTPATH=1 # C6特化 fast path
|
||||
```
|
||||
- **Status**: Default OFF, FROZEN (all 3 knobs)
|
||||
- **Actual Results** (Phase MID-V35-HOTPATH-OPT-1 Mixed A/B):
|
||||
- Mixed (16–1024B, MID_V35_OFF): **-0.2%** (誤差範囲, ±2%以内) ✓
|
||||
- C6-heavy (257–768B, MID_V35_ON): **+7.3%** improvement ✅
|
||||
- **Finding**: Mixed は MID_V3(C6-only) 固定で効果微小;C6-heavy のみ効果大
|
||||
- **Recommendation**: C6_HEAVY_LEGACY_POOLV1 プリセットで推奨ON
|
||||
- **NOT recommended for**: MIXED_TINYV3_C7_SAFE mainline (keep all defaults OFF)
|
||||
- **Phase POLICY-FAST-PATH-V2** (FROZEN - research only):
|
||||
```sh
|
||||
HAKMEM_TINY_FREE_POLICY_FAST_V2=1 # Fast-path free optimization
|
||||
@ -100,6 +113,12 @@ HAKMEM_MID_V3_ENABLED=1 # Phase MID-V3: 257-768B, C6 only
|
||||
HAKMEM_MID_V3_CLASSES=0x40 # C6 only (+11% on C6-heavy)
|
||||
HAKMEM_MID_V35_ENABLED=1 # Phase v11a-5: C6-heavy で +8% 改善
|
||||
HAKMEM_MID_V35_CLASSES=0x40 # C6 only (53.1M ops/s)
|
||||
|
||||
# Phase MID-V35-HOTPATH-OPT-1: C6-heavy 最速セット(推奨ON)
|
||||
# 機能: header prefill + hot counts削除 + C6 fast path (組み合わせで +7.3%)
|
||||
HAKMEM_MID_V35_HEADER_PREFILL=1 # refill境界でheader先行書き
|
||||
HAKMEM_MID_V35_HOT_COUNTS=0 # alloc_count削除(free_count/retire残す)
|
||||
HAKMEM_MID_V35_C6_FASTPATH=1 # C6特化 fast path (constant slot_size=512)
|
||||
```
|
||||
- mid_desc_lookup TLS キャッシュを試すときだけ: `HAKMEM_MID_DESC_CACHE_ENABLED=1` を上乗せ(デフォルトは OFF)。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user