#!/bin/bash # Redis-style memory allocator comparison script # Compares System, mimalloc, and HAKMEM allocators echo "Redis-style Memory Allocator Benchmark" echo "======================================" echo "Comparing: System malloc vs mimalloc vs HAKMEM" echo "" BENCH="./benchmarks/redis/workload_bench_system" MIMALLOC_LIB="/mnt/workdisk/public_share/hakmem/mimalloc-bench/extern/mi/out/release/libmimalloc.so" HAKMEM_LIB="./libhakmem.so" THREADS=1 CYCLES=100 OPS=1000 # Test parameters echo "Test Parameters:" echo " Threads: $THREADS" echo " Cycles: $CYCLES" echo " Operations per cycle: $OPS" echo " Size range: 16-1024 bytes" echo "" # Run System malloc benchmark echo "=== 1. System malloc ===" $BENCH -t $THREADS -c $CYCLES -o $OPS echo "" # Run mimalloc benchmark echo "=== 2. mimalloc ===" LD_PRELOAD=$MIMALLOC_LIB $BENCH -t $THREADS -c $CYCLES -o $OPS echo "" # Run HAKMEM benchmark (if shared library works) echo "=== 3. HAKMEM ===" if [ -f "$HAKMEM_LIB" ]; then LD_PRELOAD=$HAKMEM_LIB $BENCH -t $THREADS -c $CYCLES -o $OPS || echo "HAKMEM: Failed" else echo "HAKMEM shared library not found" fi echo "" echo "Summary:" echo "========" echo "Performance comparison of Redis-style workloads (16-1024B allocations)"