[Zope-dev] Re: hasattr implementation for Zope?
Paul Winkler
pw_lists at slinkp.com
Fri May 27 14:59:31 EDT 2005
On Fri, May 27, 2005 at 01:49:00PM -0400, Tim Peters wrote:
> Nope, it's a "cell" reference to an enclosing scope, and gets looked
> up at cell-dereference speed. In my experience, that's generally a
> bit slower than accessing a module global. That may have to do with a
> quirk of MSVC's code generation; unsure.
Wow. If so, gcc apparently shares the same quirk.
With python 2.3.5 on my ancient gentoo box,
I get this (after substituting time.time for time.clock):
lookup1 1.55095
lookup2 1.57738
lookup3 1.4966
This is so suprising to me that I went ahead and tried
a couple of variations that I figured *must* be slower:
def lookup4(arg):
# Doesn't get much simpler than this.
return object()
class C:
# ok this one is pretty silly
_marker = object()
def lookup5(self, arg):
return self._marker
lookup5 = C().lookup5
lookup1 1.53485
lookup2 1.57811
lookup3 1.47942
lookup4 2.33403
lookup5 2.0232
measurement-never-agrees-with-anyone-except-when-you-wish-it-didn't-ly y'rs,
- Paul
--
Paul Winkler
http://www.slinkp.com
More information about the Zope-Dev
mailing list