Stefan Behnel added the comment:
Here's also the pathological "average of three calls" case. As Steven suggests,
it shows that select() suffers quite heavily (algorithmically), but select2()
also suffers enough to jump up to about 2/3 of the runtime of sorting (so it's
still 1/3 faster even here). This sounds like select2 should be much faster on
random data (run 1) and about as fast on sorted data (runs 2+3). Not
unexpected, given the algorithmical characteristics of Timsort.
== Average of three calls mode ==
N sort select7 select23 select47 select97 select select2
-------- -------- -------- -------- -------- -------- -------- --------
5000 0.000 0.002 0.001 0.001 0.002 0.001 0.000
10000 0.001 0.004 0.003 0.003 0.003 0.001 0.001
50000 0.006 0.018 0.017 0.016 0.016 0.011 0.003
100000 0.013 0.037 0.029 0.031 0.037 0.016 0.009
500000 0.091 0.246 0.204 0.216 0.227 0.218 0.057
1000000 0.205 0.535 0.443 0.434 0.459 0.530 0.156
2000000 0.458 1.137 0.917 0.922 1.052 2.124 0.328
3000000 0.734 1.743 1.448 1.510 1.607 2.805 0.500
4000000 1.010 2.400 1.888 2.029 2.157 3.039 0.655
5000000 1.278 3.021 2.458 2.404 2.717 4.789 0.853
6000000 1.571 3.629 2.873 3.094 3.279 4.136 1.030
7000000 1.884 4.258 3.520 3.621 3.530 7.788 1.312
8000000 2.198 4.977 4.042 4.175 4.080 9.035 1.446
9000000 2.525 5.555 4.539 4.723 4.633 10.933 1.608
10000000 2.844 6.345 4.929 5.035 5.588 10.398 1.852
11000000 3.194 7.081 5.822 5.973 6.183 8.291 2.111
Total elapsed time: 13.33 minutes
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue21592>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com