Python and STL efficiency
Tim N. van der Leeuw
tim.leeuwvander at nl.unisys.com
Mon Aug 21 09:16:52 EDT 2006
Tim N. van der Leeuw wrote:
> Ray wrote:
> > Fredrik Lundh wrote:
> > > in the Python example, the four strings in your example are shared, so
> > > you're basically copying 40000 pointers to the list.
> > >
> > > in the C++ example, you're creating 40000 string objects.
> > >
> > > </F>
> >
> > In which case, Licheng, you should try using the /GF switch. This will
> > tell Microsoft C++ compiler to pool identical string literals together.
> >
> >
> > :)
>
> The code still creates a new string - instance each time it tries to
> append a const char* to the vector<string> ...
>
> You should instead create the string-objects ahead of time, outside of
> the loop.
>
> Regards,
>
> --Tim
Alternatively, slow down the Python implementation by making Python
allocate new strings each time round:
a.append('%s' % 'What do you know')
... for each of your string-appends. But even then, the python-code is
still near-instant.
Cheers,
--Tim
More information about the Python-list
mailing list