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:
@ -7,6 +7,7 @@
|
||||
#include <stdio.h>
|
||||
#include "box/smallobject_segment_mid_v3_box.h"
|
||||
#include "box/region_id_v6_box.h"
|
||||
#include "box/smallobject_mid_v35_geom_box.h" // Phase MID-V35-HOTPATH-OPT-1: geometry SSOT
|
||||
|
||||
// SmallPageMeta is now defined in smallobject_segment_mid_v3_box.h
|
||||
|
||||
@ -21,20 +22,9 @@
|
||||
// ============================================================================
|
||||
// Helper: class_idx to slots mapping
|
||||
// ============================================================================
|
||||
|
||||
static uint32_t class_idx_to_slots(uint32_t class_idx) {
|
||||
// MID v3.5 targets C5-C7 (257-1024B)
|
||||
// C5: 257-384B → 64KiB / 384B ≈ 170 slots
|
||||
// C6: 385-640B → 64KiB / 640B ≈ 102 slots
|
||||
// C7: 641-1024B → 64KiB / 1024B ≈ 64 slots
|
||||
|
||||
switch (class_idx) {
|
||||
case 5: return 170; // C5
|
||||
case 6: return 102; // C6
|
||||
case 7: return 64; // C7
|
||||
default: return 0;
|
||||
}
|
||||
}
|
||||
// Phase MID-V35-HOTPATH-OPT-1: Use geom_box as Single Source of Truth
|
||||
// See: core/box/smallobject_mid_v35_geom_box.h
|
||||
// (Removed local class_idx_to_slots() which had wrong C6 value: 102 instead of 128)
|
||||
|
||||
// ============================================================================
|
||||
// Segment Lifecycle
|
||||
|
||||
Reference in New Issue
Block a user