Phase 83-1 + Allocator Comparison: Switch dispatch fixed (NO-GO +0.32%), PROFILE correction, SCORECARD update
Key changes: - Phase 83-1: Switch dispatch fixed mode (tiny_inline_slots_switch_dispatch_fixed_box) - NO-GO (marginal +0.32%, branch reduction negligible) Reason: lazy-init pattern already optimal, Phase 78-1 pattern shows diminishing returns - Allocator comparison baseline update (10-run SSOT, WS=400, ITERS=20M): tcmalloc: 115.26M (92.33% of mimalloc) jemalloc: 97.39M (77.96% of mimalloc) system: 85.20M (68.24% of mimalloc) mimalloc: 124.82M (baseline) - hakmem PROFILE correction: scripts/run_mixed_10_cleanenv.sh + run_allocator_quick_matrix.sh PROFILE explicitly set to MIXED_TINYV3_C7_SAFE for hakmem measurements Result: baseline stabilized to 55.53M (44.46% of mimalloc) Previous unstable measurement (35.57M) was due to profile leak - Documentation: * PERFORMANCE_TARGETS_SCORECARD.md: Reference allocators + M1/M2 milestone status * PHASE83_1_SWITCH_DISPATCH_FIXED_RESULTS.md: Phase 83-1 analysis (NO-GO) * ALLOCATOR_COMPARISON_QUICK_RUNBOOK.md: Quick comparison procedure * ALLOCATOR_COMPARISON_SSOT.md: Detailed SSOT methodology - M2 milestone status: 44.46% (target 55%, gap -10.54pp) - structural improvements needed 🤖 Generated with Claude Code Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@ -24,6 +24,7 @@
|
||||
#include <stdint.h>
|
||||
#include "../box/tiny_c6_inline_slots_env_box.h"
|
||||
#include "../box/tiny_c6_inline_slots_tls_box.h"
|
||||
#include "../box/tiny_inline_slots_fixed_mode_box.h"
|
||||
|
||||
// ============================================================================
|
||||
// Fast-Path API (always_inline for zero branch overhead)
|
||||
@ -75,8 +76,7 @@ static inline TinyC6InlineSlots* c6_inline_tls(void) {
|
||||
// Check if C6 inline is enabled AND initialized (combined gate)
|
||||
// Returns: 1 if ready to use, 0 if disabled or uninitialized
|
||||
static inline int c6_inline_ready(void) {
|
||||
// ENV gate first (cached, zero cost after first call)
|
||||
if (!tiny_c6_inline_slots_enabled()) {
|
||||
if (!tiny_c6_inline_slots_enabled_fast()) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user