dict.get and str.xsplit

bearophileHUGS at lycos.com bearophileHUGS at lycos.com
Tue Feb 26 09:40:28 EST 2008


Marc 'BlackJack' Rintsch:

> I guess it's the method lookup that's the slow part.  Factor it out of the
> loop and measure again::

I did know of that optimization, but sometimes I "forget" about it...
The new timings:

Output timings, best of 3, unloaded CPU:
2.32 s with adict.get
1.56 s with "in" + if/then/else
1.78 s with adict_get

It's slower still, despite doing the lookup two times half of the
times (half keys are present in the test set). The "in" is an
operator, it's faster than a method call, but I don't understand the
other details. Now the difference between 1.78 and 1.56 is small
enough, so probably now it's not much noticeable in practice in real
programs, so my original argument is mostly dead now :-) In the code
points where speed matters instead of a single line with a get() I can
use two lines to create a local adict_get.

Bye and thank you,
bearophile



More information about the Python-list mailing list