[Python-Dev] 2.0 Optimization & speed

Barry Scott barry@scottb.demon.co.uk
Tue, 19 Sep 2000 00:00:13 +0100


There needs to be a set of benchmarks that can be used to test the effect
of any changes. Is there a set that exist already that can be used?

		Barry


> Behalf Of Vladimir Marangozov
> 
> Continuing my impressions on the user's feedback to date: Donn Cave
> & MAL are at least two voices I've heard about an overall slowdown
> of the 2.0b1 release compared to 1.5.2. Frankly, I have no idea where
> this slowdown comes from and I believe that we have only vague guesses
> about the possible causes: unicode database, more opcodes in ceval, etc.
> 
> I wonder whether we are in a position to try improving Python's
> performance with some `wise quickies' in a next beta. But this raises
> a more fundamental question on what is our margin for manoeuvres at this
> point. This in turn implies that we need some classification of the
> proposed optimizations to date.
> 
> Perhaps it would be good to create a dedicated Web page for this, but
> in the meantime, let's try to build a list/table of the ideas that have
> been proposed so far. This would be useful anyway, and the list would be
> filled as time goes.
> 
> Trying to push this initiative one step further, here's a very rough start
> on the top of my head:
> 
> Category 1: Algorithmic Changes
> 
> These are the most promising, since they don't relate to pure technicalities
> but imply potential improvements with some evidence.
> I'd put in this category:
> 
> - the dynamic dictionary/string specialization by Fred Drake
>   (this is already in). Can this be applied in other areas? If so, where?
> 
> - the Python-specific mallocs. Actually, I'm pretty sure that a lot of
>   `overhead' is due to the standard mallocs which happen to be expensive
>   for Python in both space and time. Python is very malloc-intensive.
>   The only reason I've postponed my obmalloc patch is that I still haven't
>   provided an interface which allows evaluating it's impact on the
>   mem size consumption. It gives noticeable speedup on all machines, so
>   it accounts as a good candidate w.r.t. performance.
> 
> - ??? (maybe some parts of MAL's optimizations could go here)
> 
> Category 2: Technical / Code optimizations
> 
> This category includes all (more or less) controversial proposals, like
> 
> - my latest lookdict optimizations (a typical controversial `quickie')
> 
> - opcode folding & reordering. Actually, I'm unclear on why Guido
>   postponed the reordering idea; it has received positive feedback
>   and all theoretical reasoning and practical experiments showed that
>   this "could" help, although without any guarantees. Nobody reported
>   slowdowns, though. This is typically a change without real dangers.
> 
> - kill the async / pending calls logic. (Tim, what happened with this
>   proposal?)
> 
> - compact the unicodedata database, which is expected to reduce the
>   mem footprint, maybe improve startup time, etc. (ongoing)
> 
> - proposal about optimizing the "file hits" on startup.
> 
> - others?
> 
> If there are potential `wise quickies', meybe it's good to refresh
> them now and experiment a bit more before the final release?
> 
> -- 
>        Vladimir MARANGOZOV          | Vladimir.Marangozov@inrialpes.fr
> http://sirac.inrialpes.fr/~marangoz | tel:(+33-4)76615277 fax:76615252
> 
> _______________________________________________
> Python-Dev mailing list
> Python-Dev@python.org
> http://www.python.org/mailman/listinfo/python-dev
>