Optimize C6 heavy and C7 ultra performance analysis with refined design refinements
- Update environment profile presets and visibility analysis - Enhance small object and tiny segment v4 box implementations - Refine C7 ultra and C6 heavy allocation strategies - Add comprehensive performance metrics and design documentation 🤖 Generated with Claude Code Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@ -26,6 +26,19 @@
|
||||
- UF-1: `core/box/tiny_c7_ultra_box.h` / `core/tiny_c7_ultra.c` を追加。ENV `HAKMEM_TINY_C7_ULTRA_ENABLED`(デフォルト OFF)で front から C7 ULTRA stub を経由し、内部では既存 C7 v3 の so_alloc/so_free を呼ぶだけで挙動・性能は不変。
|
||||
- UF-2: ULTRA TLS に自前 freelist と C7 ページジオメトリを持たせ、C7 v3 ColdIface から 1 ページ lease→自前 carve→ヘッダ書きで返すホットパスを実装。範囲外/失敗は so_alloc/so_free へ即フォールバック。Mixed 16–1024B(C7-only v3 本線, ws=400, 1M)で ULTRA ON は OFF 比でおおよそ +9% 程度の改善を確認(segv/assert なし)。UF-3 以降で専用 2MiB セグメント+mask 判定による完全ヘッダレス化を予定。
|
||||
|
||||
### Phase UF-3: C7 ULTRA 専用セグメント(デフォルトON)
|
||||
- 追加: `core/box/tiny_c7_ultra_segment_box.h` / `core/tiny_c7_ultra_segment.c` で 2MiB セグメント(64KiB ページ)を mmap、mask 判定で page_of を引く箱を追加。ULTRA TLS から carve/push できるように統合。
|
||||
- front gate: `HAKMEM_TINY_C7_ULTRA_ENABLED` デフォルト ON。seg 外 ptr は so_free(7) へフォールバックする Fail-Fast オーバーレイ。
|
||||
- Mixed 16–1024B (ws=400, 1M): ULTRA ON ≈ **44–45M ops/s**(ULTRA OFF は ≈35M)。C7-only (MIN=MAX=1024): ULTRA ON ≈ **57.5M ops/s**, OFF ≈ **38.1M ops/s**。segv/assert なし。
|
||||
|
||||
### Phase UF-4: C7 ULTRA header light(研究箱, デフォルト OFF)
|
||||
- 目的: ULTRA alloc/free から毎回の tiny_region_id_write_header を外し、carve 時の一括初期化に寄せる。
|
||||
- 変更: freelist next をヘッダ直後に保存するように変更(ヘッダを保持したまま push/pop)。ENV `HAKMEM_TINY_C7_ULTRA_HEADER_LIGHT`(default 0)を tiny_front_v3_env_box Snapshot に追加。ULTRA carve 時に ON なら全ブロックへ 1 回だけヘッダを書き、alloc ではヘッダ済みなら書き直さない。
|
||||
- A/B:
|
||||
- Mixed 16–1024B (C7-only v3, ULTRA ON, ws=400, iters=1M): OFF **45.03M ops/s** → ON **43.97M ops/s**(-2% 程度, segv/assert なし)。
|
||||
- C7-only (MIN=MAX=1024, ULTRA ON): OFF **55.37M ops/s** → ON **55.90M ops/s**(+1% 程度)。
|
||||
- 方針: header light は研究箱のまま。Mixed ではわずかにマイナスなのでデフォルト OFF を維持。C7-only ベンチでわずかにプラスが出るため、今後の ULTRA pf/segment 改善と合わせて再評価する。
|
||||
|
||||
### Phase C6-FREEZE: C6 は mid/pool の普通クラスに固定(研究箱に退避)
|
||||
- 目的: C6 を Tiny/SmallObject/ULTRA で特別扱いしないのを標準とし、C6 v3/v4/ULTRA/flatten はすべて ENV opt-in の研究箱に戻す。
|
||||
- 変更:
|
||||
|
||||
Reference in New Issue
Block a user