The issue of the performance of the python random module, and in particular, random.sample
and random.shuffle
came up in this question. On my computer, I get the following results:
> python -m timeit -s 'import random' 'random.randint(0,1000)'
1000000 loops, best of 3: 1.07 usec per loop
> python3 -m timeit -s 'import random' 'random.randint(0,1000)'
1000000 loops, best of 3: 1.3 usec per loop
That's more than a 20% degradation of performance in python3 vs python2. It gets much worse.
> python -m timeit -s 'import random' 'random.shuffle(list(range(10)))'
100000 loops, best of 3: 3.85 usec per loop
> python3 -m timeit -s 'import random' 'random.shuffle(list(range(10)))'
100000 loops, best of 3: 8.04 usec per loop
> python -m timeit -s 'import random' 'random.sample(range(10),3)'
100000 loops, best of 3: 2.4 usec per loop
> python3 -m timeit -s 'import random' 'random.sample(range(10),3)'
100000 loops, best of 3: 6.49 usec per loop
That represents a 100% degradation in performance for random.shuffle
, and almost a 200% degradation for random.sample
. That is quite severe.
I used python 2.7.9 and python 3.4.2 in the above tests.
My question: What happened to the random
module in python3?
Aucun commentaire:
Enregistrer un commentaire