Optimization of ImageStat.Stat._getcount method

The new implementation uses "sum" instead of the construct
"functools.reduce(operator.add, ...)". Test showed that the
new function is about three times faster than the original.
Also it is shorter and easier to read.

Signed-off-by: Andreas Florath <andreas@florath.net>
This commit is contained in:
Andreas Florath 2023-12-01 16:01:23 +01:00
parent 76446ee450
commit a04c6a27e8

View File

@ -69,10 +69,7 @@ class Stat:
def _getcount(self):
"""Get total number of pixels in each layer"""
v = []
for i in range(0, len(self.h), 256):
v.append(functools.reduce(operator.add, self.h[i : i + 256]))
return v
return [sum(self.h[i: i + 256]) for i in range(0, len(self.h), 256)]
def _getsum(self):
"""Get sum of all pixels in each layer"""