Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re^2: A bad shuffle

by Anonymous Monk
on Mar 21, 2005 at 10:04 UTC ( #441161=note: print w/ replies, xml ) Need Help??


in reply to Re: A bad shuffle
in thread A bad shuffle

Considering that shuffle and random_perm are called without arguments, and are hence shuffling empty lists, your benchmark doesn't show anything interesting. If you change the @_ in both subs to @cards, I get the following results:

              Rate random_perm     shuffle
random_perm 6796/s          --        -32%
shuffle     9955/s         46%          --
It may appear that shuffle is faster. But look what happens when we shuffle 52000 cards instead of 52:
            s/iter     shuffle random_perm
shuffle       1.02          --        -85%
random_perm  0.158        550%          --
It's well known that a shuffle based on splice doesn't scale, due to its quadratic behaviour.

Never use a splice based shuffle. For every millisecond you will gain if you shuffle a small list you'll pay a second when shuffling a large list.


Comment on Re^2: A bad shuffle

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://441161]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (7)
As of 2015-08-01 01:06 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (285 votes), past polls