jmh-basics: JMH tutorial module (dead-code elimination, Blackhole, constant folding, warmup/forks, state scopes, -prof gc)
Eight benchmark/demo classes, a deterministic test suite, and 12 captured output files generated by scripts/run-all.sh on JDK 25.0.5 (Temurin) with JMH 1.37. Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_017ic4b6Fj2JNt7dRev4pZPe
This commit is contained in:
Executable
+26
@@ -0,0 +1,26 @@
|
||||
#!/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."
|
||||
Executable
+6
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
# Run one demo class ad hoc, e.g.: ./scripts/run.sh NaiveTimingDemo
|
||||
set -euo pipefail
|
||||
cd "$(dirname "$0")/.."
|
||||
mvn -q -B package -DskipTests
|
||||
java -cp target/benchmarks.jar "com.ankurm.jmhbasics.$1"
|
||||
Reference in New Issue
Block a user