> On Dec. 5, 2014, 8:06 p.m., Bill Farner wrote:
> > Not to bikeshed, but do either of you have a sense for what it would take 
> > to put the benchmarking code into a gradle subproject?  My sense is that 
> > would avoid further complicating the root build.gradle, but i'm not 
> > familiar enough with gradle to know what, if any, hurdles that would 
> > present.

There is not much to hide in a subproject as all you see here is configuring 
the plugin to run with our gradle. I don't see any sane way of hiding it in a 
subproject short of reimplementing the plugin ourselves.


- Maxim


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/28710/#review64066
-----------------------------------------------------------


On Dec. 5, 2014, 6:32 p.m., Maxim Khutornenko wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/28710/
> -----------------------------------------------------------
> 
> (Updated Dec. 5, 2014, 6:32 p.m.)
> 
> 
> Review request for Aurora, Kevin Sweeney and Bill Farner.
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This RB is superseding the https://reviews.apache.org/r/28474/.
> 
> 
> I have spent some time researching the available microbenchmark frameworks 
> and JMH [1] came as a clear winner:
> - Active development trail [2]
> - Advanced featureset and built-in optimizations improving accuracy and 
> consistency [3]
> - Well documented set of examples [4]
> - Large community experience and collective wisdom. 
> 
> 
> This RB adds gradle support for running JMH benchmarks and is relying on JMH 
> gradle plugin [5]. The benchmarks are run via `./gradlew jmh` command.
> 
> [1] - http://openjdk.java.net/projects/code-tools/jmh/
> [2] - http://hg.openjdk.java.net/code-tools/jmh/ 
> [3] - 
> https://groups.google.com/forum/#!msg/mechanical-sympathy/m4opvy4xq3U/7lY8x8SvHgwJ
> [4] - 
> http://hg.openjdk.java.net/code-tools/jmh/file/adb6047266d8/jmh-samples/src/main/java/org/openjdk/jmh/samples
> [5] - https://github.com/melix/jmh-gradle-plugin
> 
> 
> Diffs
> -----
> 
>   build.gradle 152ba631e2dd07f0306e58e355274e10a4128140 
>   config/findbugs/excludeFilter.xml d6c1b1681c2d8505a088f9fb082ce11ac400126f 
>   src/jmh/java/org/apache/aurora/benchmark/SchedulerBenchmark.java 
> PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/28710/diff/
> 
> 
> Testing
> -------
> 
> $ ./gradlew jmh
> 
> Sample results generated:
> 
> ```
> # VM invoker: 
> /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home/jre/bin/java
> # VM options: -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en 
> -Duser.variant
> # Warmup: 1 iterations, 1 s each
> # Measurement: 3 iterations, 1 s each
> # Timeout: 10 min per iteration
> # Threads: 1 thread, will synchronize iterations
> # Benchmark mode: Throughput, ops/time
> # Benchmark: org.apache.aurora.benchmark.SchedulerBenchmark.example
> 
> # Run progress: 0.00% complete, ETA 00:00:04
> # Fork: 1 of 1
> # Warmup Iteration   1: 3156839103.911 ops/s
> Iteration   1: 3333544897.411 ops/s
> Iteration   2: 3357230627.218 ops/s
> Iteration   3: 3461073727.560 ops/s
> 
> 
> Result: 3383949750.729 ±(99.9%) 1237528915.517 ops/s [Average]
>   Statistics: (min, avg, max) = (3333544897.411, 3383949750.729, 
> 3461073727.560), stdev = 67833135.714
>   Confidence interval (99.9%): [2146420835.212, 4621478666.247]
> 
> 
> # Run complete. Total time: 00:00:05
> 
> Benchmark                              Mode  Samples           Score          
>   Error  Units
> o.a.a.b.SchedulerBenchmark.example    thrpt        3  3383949750.729 ± 
> 1237528915.517  ops/s
> 
> ```
> 
> 
> Thanks,
> 
> Maxim Khutornenko
> 
>

Reply via email to