minor cache based optimization

This commit is contained in:
Miroslav Stampar 2010-12-14 12:22:17 +00:00
parent 270ae0f080
commit b75d7fa348
2 changed files with 13 additions and 5 deletions

View File

@ -1290,13 +1290,20 @@ def stdev(values):
if not values or len(values) < 2: if not values or len(values) < 2:
return None return None
key = (values[0], values[-1], len(values))
if key in kb.cache.stdev:
return kb.cache.stdev[key]
else:
summa = 0.0 summa = 0.0
avg = average(values) avg = average(values)
for value in values: for value in values:
summa += pow(value - avg, 2) summa += pow(value - avg, 2)
return sqrt(summa/(len(values) - 1)) retVal = sqrt(summa/(len(values) - 1))
kb.cache.stdev[key] = retVal
return retVal
def average(values): def average(values):
""" """

View File

@ -1125,6 +1125,7 @@ def __setKnowledgeBaseAttributes():
kb.cache = advancedDict() kb.cache = advancedDict()
kb.cache.content = {} kb.cache.content = {}
kb.cache.regex = {} kb.cache.regex = {}
kb.cache.stdev = {}
kb.commonOutputs = None kb.commonOutputs = None