buildscript { repositories { maven { // The google mirror is less flaky than mavenCentral() url "https://maven-central.storage-download.googleapis.com/repos/central/data/" } } dependencies { classpath libraries.protobuf_plugin } } apply plugin: 'application' description = "grpc Benchmarks" startScripts.enabled = false run.enabled = false jmh { jvmArgs = "-server -Xms2g -Xmx2g" // Workaround // https://github.com/melix/jmh-gradle-plugin/issues/97#issuecomment-316664026 includeTests = true } dependencies { compile project(':grpc-core'), project(':grpc-netty'), project(':grpc-okhttp'), project(':grpc-stub'), project(':grpc-protobuf'), project(':grpc-testing'), libraries.junit, libraries.mockito, libraries.hdrhistogram, libraries.netty_tcnative, libraries.netty_epoll, libraries.math compileOnly libraries.javax_annotation } compileJava { // The Control.Void protobuf clashes options.compilerArgs += ["-Xep:JavaLangClash:OFF"] } configureProtoCompilation() def vmArgs = [ "-server", "-Xms2g", "-Xmx2g", "-XX:+PrintGCDetails" ] task qps_client(type: CreateStartScripts) { mainClassName = "io.grpc.benchmarks.qps.AsyncClient" applicationName = "qps_client" defaultJvmOpts = [ "-javaagent:" + configurations.alpnagent.asPath ].plus(vmArgs) outputDir = new File(project.buildDir, 'tmp') classpath = jar.outputs.files + project.configurations.runtime } task openloop_client(type: CreateStartScripts) { mainClassName = "io.grpc.benchmarks.qps.OpenLoopClient" applicationName = "openloop_client" defaultJvmOpts = [ "-javaagent:" + configurations.alpnagent.asPath ].plus(vmArgs) outputDir = new File(project.buildDir, 'tmp') classpath = jar.outputs.files + project.configurations.runtime } task qps_server(type: CreateStartScripts) { mainClassName = "io.grpc.benchmarks.qps.AsyncServer" applicationName = "qps_server" outputDir = new File(project.buildDir, 'tmp') classpath = jar.outputs.files + project.configurations.runtime } task benchmark_worker(type: CreateStartScripts) { mainClassName = "io.grpc.benchmarks.driver.LoadWorker" applicationName = "benchmark_worker" defaultJvmOpts = [ "-javaagent:" + configurations.alpnagent.asPath ].plus(vmArgs) outputDir = new File(project.buildDir, 'tmp') classpath = jar.outputs.files + project.configurations.runtime } applicationDistribution.into("bin") { from(qps_client) from(openloop_client) from(qps_server) from(benchmark_worker) fileMode = 0755 }