# Benchmarks Catalog このディレクトリのベンチを用途別に整理しました。各ベンチは System/mimalloc/HAKMEM(直リンク or LD_PRELOAD)の三者比較、もしくは HAKMEM の A/B(環境変数)を想定しています。 ## ベンチ種類(バイナリ) - Tiny Hot(8–64B、ホットパス/LIFO) - `benchmarks/src/tiny/bench_tiny_hot.c` - バイナリ: `bench_tiny_hot_system`, `bench_tiny_hot_hakmem`, `bench_tiny_hot_mi` - 例: `./bench_tiny_hot_hakmem 64 100 60000` - Random Mixed(16–1024B、単体) - バイナリ: `bench_random_mixed_system`, `bench_random_mixed_hakmem` - 例: `./bench_random_mixed_hakmem 400000 8192 123` - Mid/Large MT(8–32KiB、マルチスレッド) - バイナリ: `bench_mid_large_mt_system`, `bench_mid_large_mt_hakmem` - 例: `./bench_mid_large_mt_hakmem 4 40000 2048 42` - VM Mixed(512KB–<2MB、L2.5/L2 の再利用確認) - バイナリ: `bench_vm_mixed_system`, `bench_vm_mixed_hakmem` - 例: `HAKMEM_BIGCACHE_L25=1 HAKMEM_WRAP_TINY=1 ./bench_vm_mixed_hakmem 20000 256 4242` - Larson(8–128B、mimalloc-bench 派生) - バイナリ: `larson_system`, `larson_mi`, `larson_hakmem` - 例: `./larson_hakmem 2 8 128 1024 1 12345 4` - Redis-like(16–1024B、アプリ風) - バイナリ: `benchmarks/redis/workload_bench_system` - 直リンク: System のみ。mimalloc/HAKMEM は LD_PRELOAD で比較(HAKMEM は安定化中)。 ## マトリクス実行(CSV保存) - Random Mixed(直リンク) - `benchmarks/scripts/run_random_mixed_matrix.sh [cycles] [ws] [reps]` - 出力: `bench_results/auto/random_mixed_/results.csv` - Mid/Large MT(直リンク) - `benchmarks/scripts/run_mid_large_mt_matrix.sh [threads_csv] [cycles] [ws] [reps]` - 出力: `bench_results/auto/mid_large_mt_/results.csv` - VM Mixed(L2.5/L2、HAKMEMのL25 A/B) - `benchmarks/scripts/run_vm_mixed_matrix.sh [cycles] [ws] [reps]` - 出力: `bench_results/auto/vm_mixed_/results.csv` - Larson(補助) - `scripts/run_larson.sh`(直リンク triad)、`scripts/run_larson_claude.sh`(環境プリセット付き) ## 代表的な環境変数 - HAKMEM_WRAP_TINY=1 → HAKMEM/Tiny を有効化(直リンクベンチ) - HAKMEM_TINY_READY=0/1 → Ready List(refill最適化) - HAKMEM_TINY_SS_ADOPT=0/1 → publish→adopt 経路 - HAKMEM_BIGCACHE_L25=0/1 → L2.5(512KB–<2MB)を BigCache にも載せる(A/B) ## 参考出力(短時間ランの目安) - 直近の短ランのスナップショットは `benchmarks/RESULTS_SNAPSHOT.md` を参照してください。正式な比較は各マトリクススクリプトで reps=5/10・長時間ラン(例: 10s)を推奨します。