opentelemetry-java-instrume.../dd-java-agent/benchmark/benchmark.gradle

60 lines
2.4 KiB
Groovy

plugins {
id "me.champeau.gradle.jmh" version "0.4.4"
}
apply from: "${rootDir}/gradle/java.gradle"
dependencies {
jmh project(':dd-trace-annotations')
jmh group: 'net.bytebuddy', name: 'byte-buddy-agent', version: '1.7.6'
}
configurations.testRuntimeClasspath.dependencies.clear()
jmh {
timeUnit = 'us' // Output time unit. Available time units are: [m, s, ms, us, ns].
benchmarkMode = ['thrpt', 'avgt']
timeOnIteration = '1s'
iterations = 1 // Number of measurement iterations to do.
fork = 2 // How many times to forks a single benchmark. Use 0 to disable forking altogether
// jvmArgs = ["-Dasdf=123"]
// jvmArgs = ["-javaagent:${project(':dd-java-agent').shadowJar.archivePath}"]
failOnError = true // Should JMH fail immediately if any benchmark had experienced the unrecoverable error?
warmup = '2s' // Time to spend at each warmup iteration.
warmupIterations = 1 // Number of warmup iterations to do.
// warmupForks = 0 // How many warmup forks to make for a single benchmark. 0 to disable warmup forks.
// profilers = ['stack']
// Use profilers to collect additional data. Supported profilers: [cl, comp, gc, stack, perf, perfnorm, perfasm, xperf, xperfasm, hs_cl, hs_comp, hs_gc, hs_rt, hs_thr]
// humanOutputFile = project.file("${project.buildDir}/reports/jmh/human.txt") // human-readable output file
// operationsPerInvocation = 10 // Operations per invocation.
// synchronizeIterations = false // Synchronize iterations?
// timeout = '1s' // Timeout for benchmark iteration.
includeTests = false
// Allows to include test sources into generate JMH jar, i.e. use it when benchmarks depend on the test classes.
duplicateClassesStrategy = 'fail'
jmhVersion = '1.19' // Specifies JMH version
}
// configured as a separate task since the 'jmh' task did not like adding a javaagent argument.
task jmhAgent(type: JavaExec, dependsOn: project.tasks.jmhCompileGeneratedClasses) {
classpath = files(project.jmhCompileGeneratedClasses.destinationDir)
classpath += sourceSets.jmh.runtimeClasspath
main = "org.openjdk.jmh.Main"
args += ["-tu", "us"]
args += ["-bm", "avgt"]
args += ["-r", "1s"]
args += ["-i", "1"]
args += ["-f", "2"]
args += ["-foe", "true"]
args += ["-w", "2s"]
args += ["-wi", "1"]
// jvmArgs = ["-javaagent:${project(':dd-java-agent').shadowJar.archivePath}"]
}
tasks.jmhAgent.dependsOn project(':dd-java-agent').shadowJar