Message279605
I doubt how many memcpy could benefit. Two pass does not necessarily make faster. I make a simple test:
With dictresize3, (I make insert_index inline):
[bin]$ ./python3 -m perf timeit -s 'd = {i:i for i in range(6)}' 'dict(d)'
....................
Median +- std dev: 441 ns +- 21 ns
[bin]$ ./python3 -m perf timeit -s 'd = {i:i for i in range(60)}' 'dict(d)'
....................
Median +- std dev: 2.02 us +- 0.10 us
[bin]$ ./python3 -m perf timeit -s 'd = {i:i for i in range(600)}' 'dict(d)'
....................
Median +- std dev: 18.1 us +- 0.9 us
With dictresize4:
[bin]$ ./python3 -m perf timeit -s 'd = {i:i for i in range(6)}' 'dict(d)'
....................
Median +- std dev: 448 ns +- 33 ns
[bin]$ ./python3 -m perf timeit -s 'd = {i:i for i in range(60)}' 'dict(d)'
....................
Median +- std dev: 2.04 us +- 0.09 us
[bin]$ ./python3 -m perf timeit -s 'd = {i:i for i in range(600)}' 'dict(d)'
....................
Median +- std dev: 18.2 us +- 0.1 us
Just like INAKA states, there is hardly any difference. And you need 2 pass for dicts with deleted member. |
|
Date |
User |
Action |
Args |
2016-10-28 13:13:31 | xiang.zhang | set | recipients:
+ xiang.zhang, rhettinger, vstinner, methane, serhiy.storchaka |
2016-10-28 13:13:31 | xiang.zhang | set | messageid: <1477660411.61.0.0433256717609.issue28199@psf.upfronthosting.co.za> |
2016-10-28 13:13:31 | xiang.zhang | link | issue28199 messages |
2016-10-28 13:13:31 | xiang.zhang | create | |
|