Incremental improvements: mid_desc cache, pool hotpath optimization, and doc updates
**Changes:** - core/box/pool_api.inc.h: Code organization and micro-optimizations - CURRENT_TASK.md: Updated Phase MD1 (mid_desc TLS cache: +3.2% for C6-heavy) - docs/analysis files: Various analysis and documentation updates - AGENTS.md: Agent role clarifications - TINY_FRONT_V3_FLATTENING_GUIDE.md: Flattening strategy documentation **Verification:** - random_mixed_hakmem: 44.8M ops/s (1M iterations, 400 working set) - No segfaults or assertions across all benchmark variants - Stable performance across multiple runs 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@ -957,3 +957,14 @@ export HAKMEM_POOL_ZERO_MODE=header
|
||||
- **mid_desc_init_once()**: すべてのモードで初期化保証(クラッシュ防止)
|
||||
|
||||
**所感**: mid_desc 初期化順序の修正は本線として常に有効。Flatten と Zero Mode は箱として組み込まれているが、デフォルト構成ではいずれも OFF。中規模 (100K) ワークロードで Combined が +8.8% 到達、1M 長尺で +2% 程度と、性能ではなく安全性が主要成果。
|
||||
|
||||
### Phase MD1: mid_desc_lookup TLS キャッシュ(mid/smallmid ベンチ専用)
|
||||
- 目的: C6-heavy / mid/smallmid で目立つ `mid_desc_lookup` self% を TLS キャッシュで 1 回に抑える(サイズ変化で miss → 従来 path)。
|
||||
- ENV: `HAKMEM_MID_DESC_CACHE_ENABLED=1` で opt-in(デフォルト OFF、標準プロファイルは挙動不変)。
|
||||
- A/B: `HAKMEM_PROFILE=C6_HEAVY_LEGACY_POOLV1`, 1M/400, flatten OFF/zero full → OFF: 28.90M ops/s / ON: 29.83M ops/s(約 +3.2%)。C7_SAFE/Mixed は未確認(±数%以内を期待)。
|
||||
- Mixed 16–1024B (`HAKMEM_PROFILE=MIXED_TINYV3_C7_SAFE`, 1M/400): OFF 44.83M → ON 44.94M(+0.3% 以内、挙動変化なし)。標準 Mixed では推奨は据え置き(mid専用オプション扱い)。
|
||||
|
||||
### Phase TG2: tiny_alloc_gate_box 再構成(回帰で廃止)
|
||||
- 内容: tiny_alloc_gate_box を LUT/route 先頭分岐に寄せる再構成+ malloc_tiny_fast_dispatch の分離を試験。
|
||||
- 結果: Mixed 16–1024B (MIXED_TINYV3_C7_SAFE, Release) で **約 -14%** (44.8M → 38.6M ops/s) の回帰。segv/assert は無し。
|
||||
- 対応: Phase TG2 変更は破棄済み(tiny_alloc_gate_box / malloc_tiny_fast を元の直線ロジックへ戻した)。今後は gate 全体を触らず、header / classify / ptr fast path など局所削減で攻める方針。
|
||||
|
||||
Reference in New Issue
Block a user