aurora-reviews mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Maxim Khutornenko" <ma...@apache.org>
Subject Re: Review Request 28710: Adding JMH framework support for scheduler performance analysis.
Date Fri, 05 Dec 2014 20:29:32 GMT


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


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message