#!/bin/bash # Box: PGO Profile Configuration # Purpose: Define representative workloads for Tiny Front # Contract: Provides workload definitions for PGO profile collection # Binaries to profile PGO_BINARIES=( "./bench_random_mixed_hakmem" "./bench_tiny_hot_hakmem" ) # Representative workloads (deterministic seeds for reproducibility) # Design: Cover diverse allocation patterns for optimal PGO data PGO_WORKLOADS=( # Random mixed: Common case (medium working set) # - Most representative of general allocation patterns # - 256 slots = moderate cache pressure "./bench_random_mixed_hakmem 5000000 256 42" # Random mixed: Smaller working set (higher cache hit) # - Exercises hot TLS SLL path heavily # - 128 slots = higher hit rate "./bench_random_mixed_hakmem 5000000 128 42" # Random mixed: Larger working set (more diverse) # - Exercises refill and cold paths more # - 512 slots = more SuperSlab allocations "./bench_random_mixed_hakmem 5000000 512 42" # Tiny hot path: 16B allocations # - Class 0 (smallest) intensive # - High allocation frequency "./bench_tiny_hot_hakmem 16 100 60000" # Tiny hot path: 64B allocations # - Class 3 (common size) intensive # - Typical small object pattern "./bench_tiny_hot_hakmem 64 100 60000" ) # Configuration summary PGO_WORKLOAD_COUNT=${#PGO_WORKLOADS[@]} PGO_BINARY_COUNT=${#PGO_BINARIES[@]}