Mercurial > hg > orthanc-tests
diff PerfsDb/TestResult.py @ 169:85a2074f8794
measuring orthanc startup time
author | am@osimis.io |
---|---|
date | Fri, 31 Aug 2018 11:01:40 +0200 |
parents | f1a75985caa8 |
children |
line wrap: on
line diff
--- a/PerfsDb/TestResult.py Fri Aug 31 10:35:09 2018 +0200 +++ b/PerfsDb/TestResult.py Fri Aug 31 11:01:40 2018 +0200 @@ -16,16 +16,24 @@ def compute(self): - mean = statistics.mean(self._durations) - stdDev = statistics.stdev(self._durations) + if len(self._durations) >= 2: + mean = statistics.mean(self._durations) + stdDev = statistics.stdev(self._durations) - # remove outliers - cleanedDurations = [x for x in self._durations if (x > mean - 2*stdDev) and (x < mean + 2*stdDev)] - - self.averageTimeInMs = statistics.mean(cleanedDurations) - self.minTimeInMs = min(cleanedDurations) - self.maxTimeInMs = max(cleanedDurations) + # remove outliers + cleanedDurations = [x for x in self._durations if (x > mean - 2*stdDev) and (x < mean + 2*stdDev)] + + self.averageTimeInMs = statistics.mean(cleanedDurations) + self.minTimeInMs = min(cleanedDurations) + self.maxTimeInMs = max(cleanedDurations) + elif len(self._durations) == 1: + self.averageTimeInMs = self._durations[0] + self.minTimeInMs = self._durations[0] + self.maxTimeInMs = self._durations[0] + else: + raise ArithmeticError # you need at least one measure ! + def __str__(self): return "{name:<40}: {avg:>8.2f} ms {min:>8.2f} ms {max:>8.2f} ms".format(