plugins { id "application" id "java" id "maven-publish" id "com.google.protobuf" id "me.champeau.jmh" id "ru.vyarus.animalsniffer" } description = "grpc Benchmarks" tasks.named("jmh").configure { jvmArgs = ["-server", "-Xms2g", "-Xmx2g"] } configurations { alpnagent } dependencies { implementation project(':grpc-core'), project(':grpc-netty'), project(':grpc-okhttp'), project(':grpc-stub'), project(':grpc-protobuf'), project(':grpc-testing'), project(path: ':grpc-xds', configuration: 'shadow'), libraries.hdrhistogram, libraries.netty.tcnative, libraries.netty.tcnative.classes, libraries.commons.math3 implementation (libraries.netty.transport.epoll) { artifact { classifier = "linux-x86_64" } } compileOnly libraries.javax.annotation alpnagent libraries.jetty.alpn.agent testImplementation libraries.junit, libraries.mockito.core signature libraries.signature.java } import net.ltgt.gradle.errorprone.CheckSeverity tasks.named("compileJava").configure { // The Control.Void protobuf clashes options.errorprone.check("JavaLangClash", CheckSeverity.OFF) } configureProtoCompilation() def vmArgs = [ "-server", "-Xms2g", "-Xmx2g", "-XX:+PrintGCDetails" ] tasks.named("startScripts").configure { enabled = false } tasks.named("run").configure { enabled = false } def qps_client = tasks.register("qps_client", CreateStartScripts) { mainClass = "io.grpc.benchmarks.qps.AsyncClient" applicationName = "qps_client" defaultJvmOpts = vmArgs outputDir = new File(project.buildDir, 'tmp/scripts/' + name) classpath = startScripts.classpath } def openloop_client = tasks.register("openloop_client", CreateStartScripts) { mainClass = "io.grpc.benchmarks.qps.OpenLoopClient" applicationName = "openloop_client" defaultJvmOpts = vmArgs outputDir = new File(project.buildDir, 'tmp/scripts/' + name) classpath = startScripts.classpath } def qps_server = tasks.register("qps_server", CreateStartScripts) { mainClass = "io.grpc.benchmarks.qps.AsyncServer" applicationName = "qps_server" outputDir = new File(project.buildDir, 'tmp/scripts/' + name) classpath = startScripts.classpath } def benchmark_worker = tasks.register("benchmark_worker", CreateStartScripts) { mainClass = "io.grpc.benchmarks.driver.LoadWorker" applicationName = "benchmark_worker" defaultJvmOpts = vmArgs outputDir = new File(project.buildDir, 'tmp/scripts/' + name) classpath = startScripts.classpath } applicationDistribution.into("bin") { from(qps_client) from(openloop_client) from(qps_server) from(benchmark_worker) fileMode = 0755 } publishing { publications { maven(MavenPublication) { artifact distZip artifact distTar } } }