[Python-Dev] [ python-Patches-876206 ] scary frame speed hacks (original) (raw)

Jeremy Hylton jeremy at alum.mit.edu
Tue Mar 2 12:08:33 EST 2004


On Tue, 2004-03-02 at 11:42, Raymond Hettinger wrote:

The patch eliminates the freelist in favor of keeping a single pre-made frame for each code block. In addition to saving a call to malloc(), the advantage is that the pre-made frame is custom to the code block and only half of fields need to be updated each time the code block is called.

This is a nice net win for normal code blocks. However, recursive functions use up their one pre-made frame on the first level of recursion. On subsequent calls, they have to call malloc() resulting in a net slowdown.

Would this effect also obtain in a multi-threaded program if two different threads called the same function concurrently?

Jeremy



More information about the Python-Dev mailing list