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

Alex D Herbert updated RNG-114:
-------------------------------
    Attachment: LinkedListShufflePerformance.png

> Improve ListSampler shuffle algorithm to detect instances of RandomAccess
> -------------------------------------------------------------------------
>
>                 Key: RNG-114
>                 URL: https://issues.apache.org/jira/browse/RNG-114
>             Project: Commons RNG
>          Issue Type: Improvement
>          Components: sampling
>    Affects Versions: 1.2
>            Reporter: Alex D Herbert
>            Assignee: Alex D Herbert
>            Priority: Minor
>         Attachments: LinkedListShufflePerformance.png
>
>
> The ListSampler shuffle algorithm uses the input list {{set(index)}} method. 
> If this runs in constant time then the algorithm is fast. If the list is not 
> an instance of {{java.util.RandomAccess}} such as a LinkedList the algorithm 
> will suffer from performance slowdown for large lists.
> This is handled in the JDK Collections.shuffle method by detecting if the 
> list is not an instance of RandomAccess. If so the list {{set(index)}} method 
> is avoided and the list is traversed for update using its iterator.
> Tasks:
>  * Benchmark the ListSampler method verses Collections.shuffle with ArrayList 
> and LinkedList
>  * Update the ListSampler to have comparable performance to 
> Collections.shuffle



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to