Пример #1
0
 def _initialize_atomic(self, name, root, real_name=None, count=1):
     real_name = real_name or name
     root[name] = {
         # streaming algorithms
         "sa":
         [[streaming.MinComputation(), None],
          [streaming.PercentileComputation(0.5, self.iters_num), None],
          [streaming.PercentileComputation(0.9, self.iters_num), None],
          [streaming.PercentileComputation(0.95, self.iters_num), None],
          [streaming.MaxComputation(), None],
          [streaming.MeanComputation(), None],
          [
              streaming.MeanComputation(), lambda st, has_result:
              ("%.1f%%" % (st.result() * 100) if has_result else "n/a")
          ],
          [
              streaming.IncrementComputation(),
              lambda st, has_result: st.result()
          ]],
         "children":
         collections.OrderedDict(),
         "real_name":
         real_name,
         "count_per_iteration":
         count
     }
Пример #2
0
 def __init__(self, *args, **kwargs):
     super(MainStatsTable, self).__init__(*args, **kwargs)
     iters_num = self._workload["total_iteration_count"]
     for name in (self._get_atomic_names() + ["total"]):
         self._data[name] = [
             [streaming.MinComputation(), None],
             [streaming.PercentileComputation(0.5, iters_num), None],
             [streaming.PercentileComputation(0.9, iters_num), None],
             [streaming.PercentileComputation(0.95, iters_num), None],
             [streaming.MaxComputation(), None],
             [streaming.MeanComputation(), None],
             [streaming.MeanComputation(),
              lambda st, has_result: ("%.1f%%" % (st.result() * 100)
                                      if has_result else "n/a")],
             [streaming.IncrementComputation(),
              lambda st, has_result: st.result()]]
 def test_stream(self):
     stream = range(10)
     mean_computation = algo.MeanComputation()
     for value in stream:
         mean_computation.add(value)
     excepted_mean = float(sum(stream)) / len(stream)
     self.assertEqual(excepted_mean, mean_computation.result())
Пример #4
0
 def _initialize_atomic(self, name, root, real_name=None, count=1):
     real_name = real_name or name
     root[name] = {
         # streaming algorithms
         "sa": [
             streaming.PointsSaver(),
             streaming.MinComputation(),
             streaming.MaxComputation(),
             streaming.MeanComputation(),
             streaming.MeanComputation(),
             streaming.IncrementComputation()
         ],
         "children":
         collections.OrderedDict(),
         "real_name":
         real_name,
         "count_per_iteration":
         count
     }
    def test_merge(self):
        single_mean = algo.MeanComputation()

        for val in six.moves.range(100):
            single_mean.add(val)

        means = [algo.MeanComputation() for _ in six.moves.range(10)]

        for idx, mean in enumerate(means):
            for val in six.moves.range(idx * 10, (idx + 1) * 10):
                mean.add(val)

        merged_mean = means[0]
        for mean in means[1:]:
            merged_mean.merge(mean)

        self.assertEqual(single_mean.count, merged_mean.count)
        self.assertEqual(single_mean.total, merged_mean.total)
        self.assertEqual(single_mean.result(), merged_mean.result())
Пример #6
0
 def _init_columns(self):
     return costilius.OrderedDict(
         (("Min (sec)", streaming.MinComputation()),
          ("Median (sec)", streaming.PercentileComputation(50)),
          ("90%ile (sec)", streaming.PercentileComputation(90)),
          ("95%ile (sec)", streaming.PercentileComputation(95)),
          ("Max (sec)", streaming.MaxComputation()),
          ("Avg (sec)", streaming.MeanComputation()),
          ("Success", streaming.ProgressComputation(self.base_size)),
          ("Count", streaming.IncrementComputation())))
Пример #7
0
 def __init__(self, criterion_value):
     super(Outliers, self).__init__(criterion_value)
     self.max_outliers = self.criterion_value.get("max", 0)
     # NOTE(msdubov): Having 3 as default is reasonable (need enough data).
     self.min_iterations = self.criterion_value.get("min_iterations", 3)
     self.sigmas = self.criterion_value.get("sigmas", 3.0)
     self.iterations = 0
     self.outliers = 0
     self.threshold = None
     self.mean_comp = streaming_algorithms.MeanComputation()
     self.std_comp = streaming_algorithms.StdDevComputation()
Пример #8
0
    def _init_row(self, name, iterations_count):
        def round_3(stream, no_result):
            if no_result:
                return "n/a"
            return round(stream.result(), 3)

        return [("Action", name),
                ("Min (sec)", streaming.MinComputation(), round_3),
                ("Median (sec)",
                 streaming.PercentileComputation(0.5,
                                                 iterations_count), round_3),
                ("90%ile (sec)",
                 streaming.PercentileComputation(0.9,
                                                 iterations_count), round_3),
                ("95%ile (sec)",
                 streaming.PercentileComputation(0.95,
                                                 iterations_count), round_3),
                ("Max (sec)", streaming.MaxComputation(), round_3),
                ("Avg (sec)", streaming.MeanComputation(), round_3),
                ("Success", streaming.MeanComputation(),
                 lambda stream, no_result: "%.1f%%" % (stream.result() * 100)),
                ("Count", streaming.IncrementComputation(),
                 lambda x, no_result: x.result())]
Пример #9
0
    def add_iteration(self, iteration):
        for name, value in self._map_iteration_values(iteration):
            if name not in self._data:
                self._data[name] = [
                    streaming.PointsSaver(),
                    streaming.IncrementComputation(),
                    streaming.MinComputation(),
                    streaming.MaxComputation(),
                    streaming.MeanComputation()
                ]
            points, count, min_v, max_v, avg = self._data[name]

            count.add()
            for ins in (points, min_v, max_v, avg):
                ins.add(value)
Пример #10
0
    def add_iteration(self, iteration):
        for name, value in self._map_iteration_values(iteration):
            if name not in self._data:
                iters_num = self._workload["total_iteration_count"]
                self._data[name] = [
                    [streaming.MinComputation(), None],
                    [streaming.PercentileComputation(0.5, iters_num), None],
                    [streaming.PercentileComputation(0.9, iters_num), None],
                    [streaming.PercentileComputation(0.95, iters_num), None],
                    [streaming.MaxComputation(), None],
                    [streaming.MeanComputation(), None],
                    [streaming.IncrementComputation(),
                     lambda v, na: v.result()]]

            self._data[name][-1][0].add(None)
            self._data[name][-2][0].add(1)
            for idx, dummy in enumerate(self._data[name][:-1]):
                self._data[name][idx][0].add(value)
Пример #11
0
 def add_iteration(self, iteration):
     for name, value in self._map_iteration_values(iteration):
         if name not in self._data:
             self._data[name] = streaming.MeanComputation()
         self._data[name].add(value or 0)
 def test_one_value(self):
     mean_computation = algo.MeanComputation()
     mean_computation.add(10.0)
     self.assertEqual(10.0, mean_computation.result())
 def test_empty_stream(self):
     mean_computation = algo.MeanComputation()
     self.assertIsNone(mean_computation.result())
Пример #14
0
 def __init__(self, criterion_value):
     super(MaxAverageDuration, self).__init__(criterion_value)
     self.avg = 0.0
     self.avg_comp = streaming_algorithms.MeanComputation()
Пример #15
0
 def test_empty_stream(self):
     mean_computation = algo.MeanComputation()
     self.assertRaises(exceptions.RallyException, mean_computation.result)