[Python-Dev] Implementing (parts of) copy module in C (original) (raw)

Rasmus Villemoes rv at rasmusvillemoes.dk
Tue Nov 1 17:56:05 EDT 2016


First, apologies if this isn't the appropriate list; I trust I'll be nudged in the right direction.

I'm using (and contributing to) an application which spends a significant part of its startup time calling copy.deepcopy, so I thought I'd try to write a C extension to speed this up. Aside from avoiding the interpreter overhead, we should also save some time by having access to pre-sizing the containers.

My plan is to let the C code handle the [at least in my case] most common stuff - atomic types, dicts, lists, tuples etc., while falling back to the python implementation for the stuff that's inconvenient to do in C, or which just hasn't been done yet - this allows a simple piecemeal approach.

Since my main use case runs on 2.7 only, I've started from the 2.7 branch, and have some working code (passes the test suite, speedup between 3x-30x depending on the data structure). Before spending time forward-porting this to Python 3, I'd like to hear if there's any interest in it? I would of course also be very interested in getting it into 2.7.x, but I assume that's impossible(?).

Where/how should RFC patches be posted?

Thanks, Rasmus



More information about the Python-Dev mailing list