blob: 342c22d3b1d854a9b19cab3e30851f36e7946dc1 [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
30dependencies {
Eric Anderson076532c2015-05-21 11:10:17 -070031 compile project(':grpc-core'),
32 project(':grpc-netty'),
33 project(':grpc-okhttp'),
34 project(':grpc-stub'),
nmittlerf770ffb2015-05-22 11:17:12 -070035 project(':grpc-protobuf'),
36 project(':grpc-testing'),
Eric Anderson076532c2015-05-21 11:10:17 -070037 libraries.junit,
38 libraries.mockito,
Eric Anderson65d73c02015-05-21 11:54:04 -070039 libraries.hdrhistogram,
40 libraries.netty_tcnative,
41 libraries.netty_transport_native_epoll
Jakob Buchgraberbd81a582015-02-19 12:48:06 -080042}
Jakob Buchgraber6ceb37a2015-02-12 13:15:33 -080043
Kun Zhang111f6dd2015-05-05 16:11:27 -070044configureProtoCompilation()
Louis Ryand8d79082015-04-28 10:21:35 -070045
Jakob Buchgraberbd81a582015-02-19 12:48:06 -080046task qps_client(type: CreateStartScripts) {
Jakob Buchgraberc5612212015-04-27 11:49:00 -070047 mainClassName = "io.grpc.benchmarks.qps.AsyncClient"
Jakob Buchgraberbd81a582015-02-19 12:48:06 -080048 applicationName = "qps_client"
49 defaultJvmOpts = ["-Xbootclasspath/p:" + configurations.alpnboot.asPath]
50 outputDir = new File(project.buildDir, 'tmp')
51 classpath = jar.outputs.files + project.configurations.runtime
52}
53
Jakob Buchgraberc5612212015-04-27 11:49:00 -070054task openloop_client(type: CreateStartScripts) {
55 mainClassName = "io.grpc.benchmarks.qps.OpenLoopClient"
56 applicationName = "openloop_client"
57 defaultJvmOpts = ["-Xbootclasspath/p:" + configurations.alpnboot.asPath]
58 outputDir = new File(project.buildDir, 'tmp')
59 classpath = jar.outputs.files + project.configurations.runtime
60}
61
Jakob Buchgraberbd81a582015-02-19 12:48:06 -080062task qps_server(type: CreateStartScripts) {
Jakob Buchgraberc5612212015-04-27 11:49:00 -070063 mainClassName = "io.grpc.benchmarks.qps.AsyncServer"
Jakob Buchgraberbd81a582015-02-19 12:48:06 -080064 applicationName = "qps_server"
65 defaultJvmOpts = ["-Xbootclasspath/p:" + configurations.alpnboot.asPath]
66 outputDir = new File(project.buildDir, 'tmp')
67 classpath = jar.outputs.files + project.configurations.runtime
68}
69
70applicationDistribution.into("bin") {
71 from(qps_client)
Jakob Buchgraberc5612212015-04-27 11:49:00 -070072 from(openloop_client)
Jakob Buchgraberbd81a582015-02-19 12:48:06 -080073 from(qps_server)
74 fileMode = 0755
Jakob Buchgraber3fd7d062015-02-10 16:01:26 -080075}
76
Louis Ryan161ac952015-02-18 15:05:25 -080077// Allow intellij projects to refer to generated-sources
78idea {
79 module {
80 // The whole build dir is excluded by default, but we need build/generated-sources,
81 // which contains the generated proto classes.
82 excludeDirs = [file('.gradle')]
83 if (buildDir.exists()) {
84 excludeDirs += files(buildDir.listFiles())
85 excludeDirs -= file("$buildDir/generated-sources")
86 }
87 }
88}
89