plugins { id "application" id "java" id "maven-publish" id "com.google.protobuf" id "me.champeau.gradle.jmh" } description = "grpc Benchmarks" startScripts.enabled = false run.enabled = false jmh { 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'), libraries.hdrhistogram, libraries.netty_tcnative, libraries.netty_epoll, libraries.math compileOnly libraries.javax_annotation alpnagent libraries.jetty_alpn_agent testImplementation libraries.junit, libraries.mockito } import net.ltgt.gradle.errorprone.CheckSeverity compileJava { // The Control.Void protobuf clashes options.errorprone.check("JavaLangClash", CheckSeverity.OFF) } configureProtoCompilation() def vmArgs = [ "-server", "-Xms2g", "-Xmx2g", "-XX:+PrintGCDetails" ] task qps_client(type: CreateStartScripts) { mainClassName = "io.grpc.benchmarks.qps.AsyncClient" applicationName = "qps_client" defaultJvmOpts = vmArgs outputDir = new File(project.buildDir, 'tmp/scripts/' + name) classpath = startScripts.classpath } task openloop_client(type: CreateStartScripts) { mainClassName = "io.grpc.benchmarks.qps.OpenLoopClient" applicationName = "openloop_client" defaultJvmOpts = vmArgs outputDir = new File(project.buildDir, 'tmp/scripts/' + name) classpath = startScripts.classpath } task qps_server(type: CreateStartScripts) { mainClassName = "io.grpc.benchmarks.qps.AsyncServer" applicationName = "qps_server" outputDir = new File(project.buildDir, 'tmp/scripts/' + name) classpath = startScripts.classpath } task benchmark_worker(type: CreateStartScripts) { mainClassName = "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 } } }