#!/usr/bin/env bash # Regenerates every file in output/. Takes roughly 6-8 minutes on a 2-vCPU host. # Timing numbers drift from run to run; read the shape (which is bigger, by roughly how much). set -euo pipefail cd "$(dirname "$0")/.." clean() { grep -vE 'JAVA_TOOL_OPTIONS|^Picked up|^WARNING|^# VM options:' || true; } JAR="java -jar target/benchmarks.jar" mvn -q -B package -DskipTests 2>&1 | clean java -cp target/classes com.ankurm.jmhbasics.NaiveTimingDemo 2>&1 | clean > output/01-naive-timing.txt $JAR DeadCodeBenchmark 2>&1 | clean > output/02-deadcode-jmh.txt java -cp target/benchmarks.jar com.ankurm.jmhbasics.LifecycleDemo 2>&1 | clean > output/03-lifecycle.txt $JAR ForkingBenchmark -f 0 -i 8 2>&1 | clean > output/04-forking-f0.txt $JAR ForkingBenchmark -f 1 -i 8 2>&1 | clean > output/05-forking-f1.txt $JAR StateScopeBenchmark 2>&1 | clean > output/06-state-scope.txt $JAR AllocationBenchmark -prof gc 2>&1 | clean > output/07-allocation-gc.txt $JAR SumBenchmark 2>&1 | clean > output/08-sum-param.txt $JAR SortBenchmark -f 1 -wi 10 -w 200ms -i 5 -r 1s -bm avgt -tu us 2>&1 | clean > output/09-warmup-trace.txt $JAR SortBenchmark -f 1 2>&1 | clean > output/10-sort-modes.txt $JAR -lprof 2>&1 | clean > output/11-list-profilers.txt mvn -q -B test 2>&1 | clean || true cp target/surefire-reports/com.ankurm.jmhbasics.JmhBasicsTest.txt output/12-tests.txt echo "Regenerated output/01-12."