32 lines
1.1 KiB
Markdown
32 lines
1.1 KiB
Markdown
|
|
# BUILDING Quickstart
|
|||
|
|
|
|||
|
|
One‑liner (recommended)
|
|||
|
|
- `./build.sh <target>`
|
|||
|
|
- Pins: `POOL_TLS_PHASE1=1 HEADER_CLASSIDX=1 AGGRESSIVE_INLINE=1 PREWARM_TLS=1 POOL_TLS_PREWARM=1`
|
|||
|
|
- Help/targets: `./build.sh help`, `./build.sh list`
|
|||
|
|
- Verify freshness: `./build.sh verify <binary>`
|
|||
|
|
|
|||
|
|
Common targets
|
|||
|
|
- `bench_random_mixed_hakmem` (Tiny 1T mixed)
|
|||
|
|
- `bench_pool_tls_hakmem` (Pool TLS 8–52KB)
|
|||
|
|
- `bench_mid_large_mt_hakmem` (Mid‑Large MT 8–32KB)
|
|||
|
|
- `larson_hakmem` (Larson)
|
|||
|
|
- System baselines: `bench_*_system`
|
|||
|
|
|
|||
|
|
Pool TLS Arena ENV (A/B)
|
|||
|
|
- `export HAKMEM_POOL_TLS_ARENA_MB_INIT=2` # default 1
|
|||
|
|
- `export HAKMEM_POOL_TLS_ARENA_MB_MAX=16` # default 8
|
|||
|
|
- `export HAKMEM_POOL_TLS_ARENA_GROWTH_LEVELS=4` # default 3
|
|||
|
|
|
|||
|
|
Runtime safety/verbosity (optional)
|
|||
|
|
- `EXTRA_MAKEFLAGS="HAKMEM_TINY_SAFE_FREE=1" ./build.sh <target>`
|
|||
|
|
- `EXTRA_MAKEFLAGS="HAKMEM_DEBUG_VERBOSE=1" ./build.sh <target>`
|
|||
|
|
|
|||
|
|
Perf & strace
|
|||
|
|
- `perf stat -e cycles,instructions,branches,branch-misses,cache-misses -r 3 -- ./<bin> ...`
|
|||
|
|
- `strace -e trace=mmap,madvise,munmap -c ./<bin> ...`
|
|||
|
|
|
|||
|
|
Troubleshooting
|
|||
|
|
- `make print-flags` to inspect flags
|
|||
|
|
- `./verify_build.sh <bin>` to check binary freshness
|