JmhPerformanceRunner

Provenance adapter around standard JMH; JMH owns forks, warm-up, clocks, samples, profilers and result serialization. Consumers provide their benchmark classes, target representatives and standard CLI options, rather than another engine. JMH is a consumer-supplied dependency; this test-only adapter does not add it to the kit's runtime POM.

Functions

Link copied to clipboard
fun run(arguments: Array<String>, fixtures: List<Class<*>>, targets: Map<String, String>, output: Path, repetition: Int, expectedWorkloads: Set<String>, inputs: Map<String, Path> = emptyMap())

Executes one independent JMH invocation and publishes a collector-bound receipt only after complete success. The output directory must not already exist; failed raw output is retained for diagnosis without a success receipt. Actual fixture, harness, and target code sources are verified unchanged around the invocation, outside JMH timing. External fixture inputs are preserved separately; generated inputs are identified by the fixture class tree. The standard JMH fork classpath requires fixtures and collector on the application/context classloader.

Link copied to clipboard
fun workloadIdentity(benchmark: String, mode: String, parameters: Map<String, String>): String

Constructs an exact benchmark/mode/parameter identity for a consumer's expected executable matrix. JMH method discovery and real input values remain consumer-owned; the runner rejects missing or duplicate results.