On Feb 26, 8:40 am, [EMAIL PROTECTED] wrote: > 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
Where does adict_getitem fit in? And try: except: KeyError? -- http://mail.python.org/mailman/listinfo/python-list