[Python-Dev] Where the speed is lost! (was: 1.6 speed)

Christian Tismer tismer@tismer.com
Fri, 28 Apr 2000 02:48:34 +0200


Jeremy Hylton wrote:
> 
> >>>>> "CT" == Christian Tismer <tismer@tismer.com> writes:
> 
>   CT> Summary: We had two effects here.  Effect 1: Wasting time with
>   CT> extra errors in instance creation.  Effect 2: Loss of locality
>   CT> due to code size increase.
> 
>   CT> Solution to 1 is Jeremy's patch.  Solution to 2 could be a
>   CT> little renaming of the one or the other module, in order to get
>   CT> the default link order to support locality better.
> 
>   CT> Now everything is clear to me. My first attempts with reordering
>   CT> could not reveal the loss with the instance stuff.

from here...
>   CT> All together, Python 1.6 is a bit faster than 1.5.2 if we try to
>   CT> get related code ordered better.
...to here

I was not clear. The rest of it is at least 100% correct.

> I reach a different conclusion.  The performance difference 1.5.2 and
> 1.6, measured with pystone and pybench, is so small that effects like
> the order in which the compiler assembles the code make a difference.

Sorry, it is 10 percent. Please do not shift the topic.
I agree that there must be better measurements to be
able to do my thoughtless claim ...from here to here...,
but the question was raised in the py-dev thread

"Python 1.6 speed" by Andrew, who was exactly asking why
pystone gets 10 percent slower.
I have been hunting that for a week now, and with your
help, it is solved.

> I don't think we should make any non-trivial effort to improve
> performance based on this kind of voodoo.

Thanks. I've already built it in - it was trivial,
but I'll keep it for my version.

> I also question the claim that the two effects here explain the
> performance difference between 1.5.2 and 1.6.  Rather, they explain
> the performance difference of pystone and pybench running on different
> versions of the interpreter.  

Exactly. I didn't want to claim anything else, it was all
in the context of the inital thread.

ciao - chris

Oops, p.s: interesting:
...
> For example, I used the compiler package (in nondist/src/Compiler) to
> compile itself.  Based on that benchmark, an interpreter built from
> the current CVS tree is still 9-11% slower than 1.5.

Did you adjust the string methods? I don't believe these are still fast.

-- 
Christian Tismer             :^)   <mailto:tismer@appliedbiometrics.com>
Applied Biometrics GmbH      :     Have a break! Take a ride on Python's
Kaunstr. 26                  :    *Starship* http://starship.python.net
14163 Berlin                 :     PGP key -> http://wwwkeys.pgp.net
PGP Fingerprint       E182 71C7 1A9D 66E9 9D15  D3CC D4D7 93E2 1FAE F6DF
     where do you want to jump today?   http://www.stackless.com