commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Phil Steitz (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (MATH-642) Performance of nextInt(int) in BitsStreamGenerator can be improved
Date Mon, 08 Aug 2011 04:25:27 GMT

     [ https://issues.apache.org/jira/browse/MATH-642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Phil Steitz resolved MATH-642.
------------------------------

    Resolution: Fixed

Trivially adapted version of Harmony implementation committed in r1154815.

> Performance of nextInt(int) in BitsStreamGenerator can be improved
> ------------------------------------------------------------------
>
>                 Key: MATH-642
>                 URL: https://issues.apache.org/jira/browse/MATH-642
>             Project: Commons Math
>          Issue Type: Improvement
>    Affects Versions: 2.0, 2.1, 2.2
>            Reporter: Phil Steitz
>            Priority: Minor
>             Fix For: 3.0
>
>         Attachments: microbenchmarks.txt
>
>
> The code used to implement this method in Apache Harmony's Random class performs better
with the Mersenne and Well generators as bit sources as well as the JDK generator.  Here are
some benchmark testing results ("orginal" is the current code):
> nextInt(10) comparison - JDK generator (runs per timed block: 100000, timed blocks: 1000)
> original value = 10: 5.417883e-05 (1.010215e-05) ms
> harmony value = 10: 3.808923e-05 (1.090630e-05) ms
> nextInt(100) comparison - JDK generator (runs per timed block: 100000, timed blocks:
1000)
> original value = 100: 4.602311e-05 (5.075280e-06) ms
> harmony value = 100: 3.771343e-05 (5.836102e-06) ms
> nextInt(10000) comparison - JDK generator (runs per timed block: 100000, timed blocks:
1000)
> original value = 10000: 5.317242e-05 (5.527069e-06) ms
> harmony value = 10000: 3.676283e-05 (5.062836e-06) ms
> nextInt(32) comparison - JDK generator (runs per timed block: 100000, timed blocks: 1000)
> original value = 32: 6.225222e-05 (1.143497e-05) ms
> harmony value = 32: 3.875278e-05 (6.099984e-06) ms
> nextInt(10) comparison - Well1024a (runs per timed block: 100000, timed blocks: 1000)
> original value = 10: 4.365601e-05 (1.013942e-05) ms
> harmony value = 10: 4.141704e-05 (1.778676e-05) ms
> nextInt(100) comparison - Well1024a (runs per timed block: 100000, timed blocks: 1000)
> original value = 100: 3.579893e-05 (4.670346e-06) ms
> harmony value = 100: 3.474323e-05 (5.273507e-06) ms
> nextInt(10000) comparison - Well1024a (runs per timed block: 100000, timed blocks: 1000)
> original value = 10000: 4.431216e-05 (5.654163e-06) ms
> harmony value = 10000: 3.440765e-05 (4.282874e-06) ms
> nextInt(32) comparison - Well1024a (runs per timed block: 100000, timed blocks: 1000)
> original value = 32: 5.080220e-05 (7.276901e-06) ms
> harmony value = 32: 2.958944e-05 (1.091995e-05) ms
> nextInt(10) comparison - MersenneTwister (runs per timed block: 100000, timed blocks:
1000)
> original value = 10: 4.365044e-05 (1.284578e-05) ms
> harmony value = 10: 3.199023e-05 (7.170367e-06) ms
> nextInt(100) comparison - MersenneTwister (runs per timed block: 100000, timed blocks:
1000)
> original value = 100: 3.488505e-05 (4.822188e-06) ms
> harmony value = 100: 3.145389e-05 (5.290716e-06) ms
> nextInt(10000) comparison - MersenneTwister (runs per timed block: 100000, timed blocks:
1000)
> original value = 10000: 4.468017e-05 (1.086927e-05) ms
> harmony value = 10000: 3.274545e-05 (2.059499e-05) ms
> nextInt(32) comparison - MersenneTwister (runs per timed block: 100000, timed blocks:
1000)
> original value = 32: 5.129467e-05 (6.652250e-06) ms
> harmony value = 32: 2.569880e-05 (8.063487e-06) ms

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message