You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Alex D Herbert (JIRA)" <ji...@apache.org> on 2019/06/29 10:28:00 UTC

[jira] [Resolved] (RNG-108) Update the SeedFactory to improve performance

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

Alex D Herbert resolved RNG-108.
--------------------------------
    Resolution: Implemented

In master.

> Update the SeedFactory to improve performance
> ---------------------------------------------
>
>                 Key: RNG-108
>                 URL: https://issues.apache.org/jira/browse/RNG-108
>             Project: Commons RNG
>          Issue Type: Improvement
>          Components: simple
>    Affects Versions: 1.3
>            Reporter: Alex D Herbert
>            Assignee: Alex D Herbert
>            Priority: Minor
>             Fix For: 1.3
>
>          Time Spent: 50m
>  Remaining Estimate: 0h
>
> The SeedFactory uses Well44497b mixed with a hashCode as the underlying generator. This has output that does not pass BigCrush. Generation of numbers uses a synchronized block around the generator on each call to the generator.
> Analysis has shown that:
>  * Speed of seed array generation can be improved by outputting multiple values per synchronisation
>  * Use of a XorShift1024SPhi generator which natively passes BigCrush will provide enough output for seed generation before the period expires
>  * Synchronisation with a ReentrantLock provides more stable performance during concurrent access
> Update the SeedFactory to:
>  * Output arrays using blocks of numbers per synchronisation event
>  * Use XorShift1024SPhi
>  * Use a ReentrantLock



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)