Files
hakmem/core
Moe Charm (CI) 5c9fe34b40 Enable performance optimizations by default (+557% improvement)
## Performance Impact

**Before** (optimizations OFF):
- Random Mixed 256B: 9.4M ops/s
- System malloc ratio: 10.6% (9.5x slower)

**After** (optimizations ON):
- Random Mixed 256B: 61.8M ops/s (+557%)
- System malloc ratio: 70.0% (1.43x slower) 
- 3-run average: 60.1M - 62.8M ops/s (±2.2% variance)

## Changes

Enabled 3 critical optimizations by default:

### 1. HAKMEM_SS_EMPTY_REUSE (hakmem_shared_pool.c:810)
```c
// BEFORE: default OFF
empty_reuse_enabled = (e && *e && *e != '0') ? 1 : 0;

// AFTER: default ON
empty_reuse_enabled = (e && *e && *e == '0') ? 0 : 1;
```
**Impact**: Reuse empty slabs before mmap, reduces syscall overhead

### 2. HAKMEM_TINY_UNIFIED_CACHE (tiny_unified_cache.h:69)
```c
// BEFORE: default OFF
g_enable = (e && *e && *e != '0') ? 1 : 0;

// AFTER: default ON
g_enable = (e && *e && *e == '0') ? 0 : 1;
```
**Impact**: Unified TLS cache improves hit rate

### 3. HAKMEM_FRONT_GATE_UNIFIED (malloc_tiny_fast.h:42)
```c
// BEFORE: default OFF
g_enable = (e && *e && *e != '0') ? 1 : 0;

// AFTER: default ON
g_enable = (e && *e && *e == '0') ? 0 : 1;
```
**Impact**: Unified front gate reduces dispatch overhead

## ENV Override

Users can still disable optimizations if needed:
```bash
export HAKMEM_SS_EMPTY_REUSE=0           # Disable empty slab reuse
export HAKMEM_TINY_UNIFIED_CACHE=0       # Disable unified cache
export HAKMEM_FRONT_GATE_UNIFIED=0       # Disable unified front gate
```

## Comparison to Competitors

```
mimalloc:      113.34M ops/s (1.83x faster than HAKMEM)
System malloc:  88.20M ops/s (1.43x faster than HAKMEM)
HAKMEM:         61.80M ops/s  Competitive performance
```

## Files Modified
- core/hakmem_shared_pool.c - EMPTY_REUSE default ON
- core/front/tiny_unified_cache.h - UNIFIED_CACHE default ON
- core/front/malloc_tiny_fast.h - FRONT_GATE_UNIFIED default ON

🚀 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 01:29:05 +09:00
..
2025-11-11 21:49:05 +09:00