[Zope-dev] SVN: zope.interface/branches/jinty-mem/src/zope/interface/interface.py Improve CPU performance of previous memory optimization
Tres Seaver
tseaver at palladion.com
Tue Nov 9 13:35:01 EST 2010
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 11/09/2010 08:26 AM, Wichert Akkerman wrote:
> On 11/9/10 14:22 , Brian Sutherland wrote:
>> Log message for revision 118295:
>> Improve CPU performance of previous memory optimization
>>
>> Changed:
>> U zope.interface/branches/jinty-mem/src/zope/interface/interface.py
>>
>> -=-
>> Modified: zope.interface/branches/jinty-mem/src/zope/interface/interface.py
>> ===================================================================
>> --- zope.interface/branches/jinty-mem/src/zope/interface/interface.py 2010-11-09 08:31:37 UTC (rev 118294)
>> +++ zope.interface/branches/jinty-mem/src/zope/interface/interface.py 2010-11-09 13:22:27 UTC (rev 118295)
>> @@ -51,6 +51,7 @@
>> # infrastructure in place.
>> #
>> #implements(IElement)
>> + __tagged_values = None
>>
>> def __init__(self, __name__, __doc__=''):
>> """Create an 'attribute' description
>> @@ -72,22 +73,27 @@
>>
>> def getTaggedValue(self, tag):
>> """ Returns the value associated with 'tag'. """
>> - return getattr(self, '_Element__tagged_values', {})[tag]
>> + if self.__tagged_values is None:
>> + return default
>> + return self.__tagged_values[tag]
>
> You can even optimise this further:
>
> tv = self.__tagged_values
> if tv is None:
> return default
> return tv[tv]
>
> that avoids a second attribute lookup. You may also want to benchmark
> that versus using a __tagged_values={} on the class and doing a simple
> return self.__tagged_values.get(tag, default_
- -1: mutable class defaults are a bug magnet.
Tres.
- --
===================================================================
Tres Seaver +1 540-429-0999 tseaver at palladion.com
Palladion Software "Excellence by Design" http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAkzZlFUACgkQ+gerLs4ltQ5ZYQCfRyDUGofCMiER447yJjBeEduu
E5IAniZu6SbOmYZC0XJt/4WeXOY2u5oD
=cNXP
-----END PGP SIGNATURE-----
More information about the Zope-Dev
mailing list