Skip to content

Commit cea2d24

Browse files
gh-143445: Optimize deepcopy for 1.04x speedup (#143449)
Gains according to pyperformance: ``` deepcopy: Mean +- std dev: 411 us +- 2 us -> 396 us +- 3 us: 1.04x faster Significant (t=28.94) deepcopy_reduce: Mean +- std dev: 4.38 us +- 0.05 us -> 4.23 us +- 0.04 us: 1.04x faster Significant (t=20.05) ``` Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
1 parent 8cf5c4d commit cea2d24

File tree

3 files changed

+3
-1
lines changed

3 files changed

+3
-1
lines changed

Lib/copy.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ def _reconstruct(x, memo, func, args,
230230
*, deepcopy=deepcopy):
231231
deep = memo is not None
232232
if deep and args:
233-
args = (deepcopy(arg, memo) for arg in args)
233+
args = [deepcopy(arg, memo) for arg in args]
234234
y = func(*args)
235235
if deep:
236236
memo[id(x)] = y

Misc/ACKS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1931,6 +1931,7 @@ James Tocknell
19311931
Bennett Todd
19321932
R Lindsay Todd
19331933
Eugene Toder
1934+
Heikki Toivonen
19341935
Erik Tollerud
19351936
Stephen Tonkin
19361937
Matias Torchinsky
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Speed up :func:`copy.deepcopy` by 1.04x.

0 commit comments

Comments
 (0)