blob: 478750b075375b6cf4187c56b36c4a498db98e28 [file] [log] [blame]
Jakob Buchgraber3fd7d062015-02-10 16:01:26 -08001apply plugin: 'application'
Louis Ryand8d79082015-04-28 10:21:35 -07002
Jakob Buchgraberbd81a582015-02-19 12:48:06 -08003description = "grpc Benchmarks"
Jakob Buchgraber3fd7d062015-02-10 16:01:26 -08004
Jakob Buchgraberbd81a582015-02-19 12:48:06 -08005startScripts.enabled = false
6run.enabled = false
Jakob Buchgraber3fd7d062015-02-10 16:01:26 -08007
8buildscript {
9 repositories {
10 mavenCentral()
Louis Ryand8d79082015-04-28 10:21:35 -070011 maven {
12 url "https://plugins.gradle.org/m2/"
13 }
Jakob Buchgraber3fd7d062015-02-10 16:01:26 -080014 }
15 dependencies {
16 classpath libraries.protobuf_plugin
Louis Ryand8d79082015-04-28 10:21:35 -070017 classpath "me.champeau.gradle:jmh-gradle-plugin:0.2.0"
Jakob Buchgraber3fd7d062015-02-10 16:01:26 -080018 }
19}
Louis Ryand8d79082015-04-28 10:21:35 -070020apply plugin: 'me.champeau.gradle.jmh'
21
22jmh {
23 jmhVersion = '1.7.1'
24 warmupIterations = 10
25 iterations = 10
26 fork = 1
27 jvmArgs = "-server -Xms768m -Xmx768m -dsa -da -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:+UseFastAccessorMethods -XX:+OptimizeStringConcat"
28}
Jakob Buchgraber3fd7d062015-02-10 16:01:26 -080029
Jakob Buchgraber6ceb37a2015-02-12 13:15:33 -080030configurations {
31 alpnboot
32}
33
Jakob Buchgraber3fd7d062015-02-10 16:01:26 -080034dependencies {
nmittlerc4c6c142015-05-14 16:36:01 -070035 List deps = [project(':grpc-core'),
36 project(':grpc-netty'),
37 project(':grpc-okhttp'),
38 project(':grpc-stub'),
39 project(':grpc-integration-testing'),
40 libraries.junit,
41 libraries.mockito,
42 libraries.hdrhistogram]
43 if (osdetector.os == "linux") {
44 // These are only available on linux.
45 deps += [libraries.netty_tcnative, libraries.netty_transport_native_epoll]
46 }
47
48 compile deps
Jakob Buchgraber6ceb37a2015-02-12 13:15:33 -080049
Jakob Buchgraber7ddcdfd2015-02-13 16:21:53 -080050 alpnboot alpnboot_package_name
Jakob Buchgraberbd81a582015-02-19 12:48:06 -080051}
Jakob Buchgraber6ceb37a2015-02-12 13:15:33 -080052
Kun Zhang111f6dd2015-05-05 16:11:27 -070053configureProtoCompilation()
Louis Ryand8d79082015-04-28 10:21:35 -070054
Jakob Buchgraberbd81a582015-02-19 12:48:06 -080055task qps_client(type: CreateStartScripts) {
Jakob Buchgraberc5612212015-04-27 11:49:00 -070056 mainClassName = "io.grpc.benchmarks.qps.AsyncClient"
Jakob Buchgraberbd81a582015-02-19 12:48:06 -080057 applicationName = "qps_client"
58 defaultJvmOpts = ["-Xbootclasspath/p:" + configurations.alpnboot.asPath]
59 outputDir = new File(project.buildDir, 'tmp')
60 classpath = jar.outputs.files + project.configurations.runtime
61}
62
Jakob Buchgraberc5612212015-04-27 11:49:00 -070063task openloop_client(type: CreateStartScripts) {
64 mainClassName = "io.grpc.benchmarks.qps.OpenLoopClient"
65 applicationName = "openloop_client"
66 defaultJvmOpts = ["-Xbootclasspath/p:" + configurations.alpnboot.asPath]
67 outputDir = new File(project.buildDir, 'tmp')
68 classpath = jar.outputs.files + project.configurations.runtime
69}
70
Jakob Buchgraberbd81a582015-02-19 12:48:06 -080071task qps_server(type: CreateStartScripts) {
Jakob Buchgraberc5612212015-04-27 11:49:00 -070072 mainClassName = "io.grpc.benchmarks.qps.AsyncServer"
Jakob Buchgraberbd81a582015-02-19 12:48:06 -080073 applicationName = "qps_server"
74 defaultJvmOpts = ["-Xbootclasspath/p:" + configurations.alpnboot.asPath]
75 outputDir = new File(project.buildDir, 'tmp')
76 classpath = jar.outputs.files + project.configurations.runtime
77}
78
79applicationDistribution.into("bin") {
80 from(qps_client)
Jakob Buchgraberc5612212015-04-27 11:49:00 -070081 from(openloop_client)
Jakob Buchgraberbd81a582015-02-19 12:48:06 -080082 from(qps_server)
83 fileMode = 0755
Jakob Buchgraber3fd7d062015-02-10 16:01:26 -080084}
85
Louis Ryan161ac952015-02-18 15:05:25 -080086// Allow intellij projects to refer to generated-sources
87idea {
88 module {
89 // The whole build dir is excluded by default, but we need build/generated-sources,
90 // which contains the generated proto classes.
91 excludeDirs = [file('.gradle')]
92 if (buildDir.exists()) {
93 excludeDirs += files(buildDir.listFiles())
94 excludeDirs -= file("$buildDir/generated-sources")
95 }
96 }
97}
98