Re: String Concatenation O(n^2) (was: Re: Explaining Implementing aBinary Search Tree.)

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Jean-Paul Calderone

    #1

    Re: String Concatenation O(n^2) (was: Re: Explaining Implementing aBinary Search Tree.)

    On Mon, 16 Jun 2008 11:30:19 -0600, Ian Kelly <ian.g.kelly@gm ail.comwrote:
    >On Mon, Jun 16, 2008 at 11:09 AM, Jean-Paul Calderone
    ><exarkun@divmo d.comwrote:
    >It will depend what version of Python you're using and the *exact* details
    >of the code in question. An optimization was introduced where, if the
    >string being concatenated to is not referred to anywhere else, it will be
    >re-sized in place. This means you'll probably see sub-quadratic behavior,
    >but only with a version of Python where this optimization exists and only
    >if the code can manage to trigger it.
    >
    >AFAICT, PyString_Concat never calls _PyString_Resiz e. Am I looking in
    >the wrong place?
    Yep. The optimization is done directly from the eval loop. Take a look at
    ceval.c, if you search for _PyString_Resiz e you should see it.

    Jean-Paul
Working...