Python from Wise Guy's Viewpoint

Lex Spoon lex at cc.gatech.edu
Mon Nov 3 19:46:22 EST 2003


Fergus Henderson <fjh at cs.mu.oz.au> writes:
>>If you are simply doing "x := y" then there is no checking required.
>
> Yes, we covered that already.  But that's not what is happening in
> the scenario that I was describing.  The scenario that I'm describing is
>
> 	Collection c;
>
> 	...
> 	foreach x in c do
> 		use(x);
>
> where use(x) might be a method call, a field access, or similar.
> For example, perhaps the collection is a set of integers, and you
> are computing their sum, so use(x) would be "sum += x".

I see.  "sum += x" would indeed tend to cause a lot of checks, but
then again the checks might well end up costing 0 overall CPU cycles.
The general technique of optimizing methods for common types, plus the
likelihood that a CPU will have multiple functional units, can make a
big difference.

Also, keep in mind that if this is a performance critical blotch of
code, then the programmer has the option of making "c" be a
specialized array or matrix type.


-Lex




More information about the Python-list mailing list