| 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 |
| } |
| } |
| } |