Message309017
Since this theme has been raised again in issue32422 and old patches no longer apply clearly I have updated patches and benchmark results on 64 bit.
$ ./python -m perf timeit -s "from functools import lru_cache; f = lru_cache(512)(lambda x: x); a = list(range(500))*100" -- "list(map(f, a))"
Unpatched: Mean +- std dev: 3.03 ms +- 0.02 ms
get-del-set: Mean +- std dev: 5.73 ms +- 0.04 ms
pop-set: Mean +- std dev: 4.63 ms +- 0.04 ms
move_to_end: Mean +- std dev: 3.57 ms +- 0.06 ms
$ ./python -m perf timeit -s "from functools import lru_cache; f = lru_cache(512)(lambda x: x); a = list(range(50000))" -- "list(map(f, a))"
Unpatched: Mean +- std dev: 6.65 ms +- 0.11 ms
get-del-set: Mean +- std dev: 15.5 ms +- 0.1 ms
pop-set: Mean +- std dev: 15.4 ms +- 0.1 ms
move_to_end: Mean +- std dev: 15.5 ms +- 0.2 ms
All patches cause significant slowdown (around 2.3x) in the case of many misses. |
|
Date |
User |
Action |
Args |
2017-12-24 20:47:45 | serhiy.storchaka | set | recipients:
+ serhiy.storchaka, rhettinger, vstinner, ezio.melotti, methane, eric.snow |
2017-12-24 20:47:45 | serhiy.storchaka | set | messageid: <1514148465.53.0.213398074469.issue28239@psf.upfronthosting.co.za> |
2017-12-24 20:47:45 | serhiy.storchaka | link | issue28239 messages |
2017-12-24 20:47:45 | serhiy.storchaka | create | |
|