What problem does it solve?
Manually running, monitoring, and parsing JMH benchmarks is a tedious and error-prone process for developers. This Skill automates the entire benchmarking workflow for Scala/sbt projects, ensuring consistent execution, real-time monitoring, and clear extraction of results, saving significant developer time and reducing complexity.
Core Features & Use Cases
- Automated JMH Execution: Runs specific or all benchmarks with a mandatory
sbt clean to ensure reliable, consistent results.
- Live Progress Monitoring: Provides real-time updates on benchmark progress, ETA, and current iterations for long-running tests.
- Result Parsing & Presentation: Automatically extracts and presents JMH result tables from log files, eliminating manual log sifting.
- Use Case: Quickly compare the performance of two different Spark Protobuf parser implementations within the project, receiving a clean, parsed result table that highlights speedups or regressions without manual intervention.
Quick Start
To run a specific benchmark and monitor its progress:
sbt clean bench/Test/compile 'bench/Jmh/run .<BenchmarkName>.' | tee /tmp/jmh_my_benchmark.log &
scripts/monitor-jmh.sh -t 300 /tmp/jmh_my_benchmark.log