Kristján Valur Jónsson wrote: > Hello there. > > I‘ve just noticed what I consider a performance problem: > > Using new style classes to provide attribute-like access using > __getattr__ is considerably slower than old style classes: Observe:
I can't reproduce those relative numbers using SVN trunk. Using your setup code (copied and pasted directly from your message to my interpreter session) I got the following numbers: >>> timeit.Timer('d.foo', s).timeit() 1.2362558841705322 >>> timeit.Timer('d2.foo', s).timeit() 1.1634600162506104 >>> timeit.Timer('d.foo', s).timeit() 1.1840031147003174 >>> timeit.Timer('d2.foo', s).timeit() 1.1554200649261475 (a slight speed advantage to the new-style class for __getattr__) >>> timeit.Timer('d.bar', s).timeit() 0.17601609230041504 >>> timeit.Timer('d2.bar', s).timeit() 0.18697309494018555 >>> timeit.Timer('d.bar', s).timeit() 0.1711127758026123 >>> timeit.Timer('d2.bar', s).timeit() 0.1827549934387207 (very slight speed advantage to the old-style class for the unbound method) Cheers, Nick. -- Nick Coghlan | [EMAIL PROTECTED] | Brisbane, Australia --------------------------------------------------------------- http://www.boredomandlaziness.org _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com