[Checkins] SVN: zope.interface/branches/jinty-mem/src/zope/interface/interface.py Be lazy about creating dict for storing tagged values.
Brian Sutherland
jinty at web.de
Fri Nov 5 03:59:12 EDT 2010
Log message for revision 118221:
Be lazy about creating dict for storing tagged values.
Saves 0.9% of resident memory size on my real world application.
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-05 07:55:44 UTC (rev 118220)
+++ zope.interface/branches/jinty-mem/src/zope/interface/interface.py 2010-11-05 07:59:12 UTC (rev 118221)
@@ -61,7 +61,6 @@
self.__name__=__name__
self.__doc__=__doc__
- self.__tagged_values = {}
def getName(self):
""" Returns the name of the object. """
@@ -73,19 +72,22 @@
def getTaggedValue(self, tag):
""" Returns the value associated with 'tag'. """
- return self.__tagged_values[tag]
+ return getattr(self, '_Element__tagged_values', {})[tag]
def queryTaggedValue(self, tag, default=None):
""" Returns the value associated with 'tag'. """
- return self.__tagged_values.get(tag, default)
+ return getattr(self, '_Element__tagged_values', {}).get(tag, default)
def getTaggedValueTags(self):
""" Returns a list of all tags. """
- return self.__tagged_values.keys()
+ return getattr(self, '_Element__tagged_values', {}).keys()
def setTaggedValue(self, tag, value):
""" Associates 'value' with 'key'. """
- self.__tagged_values[tag] = value
+ tv = getattr(self, '_Element__tagged_values', None)
+ if tv is None:
+ tv = self.__tagged_values = {}
+ tv[tag] = value
class SpecificationBasePy(object):
More information about the checkins
mailing list