RFR: Rework Results API

Aleksey Shipilev aleksey.shipilev at oracle.com
Fri Aug 30 01:16:21 PDT 2013


Thank you. I'll test a bit more, and push later today.

-Aleksey.

On 08/30/2013 12:13 PM, Sergey Kuksenko wrote:
> Reviewed.
> Modifications are accepted (as intermediate step :))
> 
> On 08/29/2013 11:09 PM, Aleksey Shipilev wrote:
>> Hi again,
>>
>> Please review the cleanup for the Results API in JMH:
>>   http://cr.openjdk.java.net/~shade/jmh/results-rework-1.webrev/
>>   http://cr.openjdk.java.net/~shade/jmh/results-rework-1.changesets
>>
>> Overview:
>>   - API now publishes proper RunResult; greatly revised
>> RunResult/IterationResult interactions; pruned lots of redundant code
>> along the way
>>   - Results API is re-thinked in the following way: every benchmark
>> always has the primary result, and unlimited number of named secondary
>> results; this allows us to fold asymmetric benchmarks to report global
>> primary score, as well as per-type secondary results
>>   - Profiler results are available through the Results API, and we can
>> now think to fold some of the profiling results to the secondary
>> benchmark results to report them in human-readable report, fit them into
>> the averaging, etc.
>>   - OutputFormat and couple of internal classes is also retrofitted to
>> make the internal API cleaner
>>
>> All in all, this allows me to do:
>>
>>     public static void main(String[] args) throws RunnerException {
>>         Options opts = new OptionsBuilder()
>>                 .include(".*")
>>                 .warmupTime(TimeValue.milliseconds(100))
>>                 .measurementTime(TimeValue.milliseconds(100))
>>                 .jvmArgs("-server")
>>                 .forks(5)
>>                 .outputFormat(OutputFormatType.TextReport)
>>                 .build();
>>
>>         RunResult runResult = new Runner(opts).runSingle();
>>         Result result = runResult.getPrimaryResult();
>>
>>         System.out.println();
>>         System.out.println("API replied benchmark score: "
>>                   + result.getScore() + " "
>>                   + result.getScoreUnit() + " over "
>>                   + result.getStatistics().getN()
>>                   + " iterations");
>>     }
>>
>> API deserves a bit of polishing, but this is already very cool. ;)
>>
>> Thanks,
>> Aleksey.
>>
> 
> 



More information about the jmh-dev mailing list