Closed as not planned
Description
slice
Right now slice
objects are deepcopied using __reduce__
defined as:
Lines 559 to 563 in 26ff436
It is one of last branches of deepcopy
logic:
Lines 120 to 157 in 26ff436
But, since slice
is an immutable type without nested structures, we can optimize its deepcopy
as:
d[slice] = _deepcopy_atomic
Before:
» pyperf timeit --setup 'from copy import deepcopy; s = slice(1,10,2)' 'deepcopy(s)'
.....................
Mean +- std dev: 3.46 us +- 0.18 us
After:
» pyperf timeit --setup 'from copy import deepcopy; s = slice(1,10,2)' 'deepcopy(s)'
.....................
Mean +- std dev: 277 ns +- 3 ns
Looks like a good speedup for just a single line!
Noticed while working on #100815
PR is incoming.