# C6-heavy Hotpath 分析 (Phase47, v2 OFF) - プロファイル: `HAKMEM_BENCH_MIN_SIZE=257 HAKMEM_BENCH_MAX_SIZE=768 HAKMEM_TINY_HEAP_PROFILE=C7_SAFE HAKMEM_TINY_C7_HOT=1 HAKMEM_TINY_HOTHEAP_V2=0 HAKMEM_TINY_LARSON_FIX=1` - ベンチ: - `./bench_random_mixed_hakmem 20000 256 1` → `Throughput = 39,457,304 ops/s` - FRONT_CLASS: cls6 alloc/free=5373、cls7 alloc=5692 free=4573 - perf stat (cycles,instructions,task-clock,branch-misses): - `./bench_random_mixed_hakmem 1000000 400 1` - cycles=175,790,796 / instructions=368,496,560 (IPC≈2.10) - task-clock=42.36 ms (user 27.26 ms / sys 16.13 ms), branch-misses=2,206,657 - perf record (cycles, 1M, ws=400): - 上位は匿名ページフォルト経路が支配的(`__memset_avx2_unaligned_erms` → `handle_mm_fault` → `do_anonymous_page` → `alloc_anon_folio` 系で包含 60%+)。 - ユーザランド側では `free`/`malloc` が目立つが、カーネル first-touch が主因。 ## 次に削る箱(候補) - 最重: first-touch/ゼロイング由来の匿名ページフォルト - 候補策: class6 向けの温存ページ再利用 / prefault を増やし、ベンチの 1M/400 で pf/sys をさらに削る。 - Tiny v1 自体の命令数は二次的(perf で目立たず)。C6 を TinyHeap に載せるよりも、先に pf 削減箱を検討するのが妥当。