Index: tools/telemetry/telemetry/timeline/counter.py |
diff --git a/tools/telemetry/telemetry/timeline/counter.py b/tools/telemetry/telemetry/timeline/counter.py |
deleted file mode 100644 |
index 63aacc6dea68cb06561f1134b62c19ebdad31de0..0000000000000000000000000000000000000000 |
--- a/tools/telemetry/telemetry/timeline/counter.py |
+++ /dev/null |
@@ -1,112 +0,0 @@ |
-# Copyright 2014 The Chromium Authors. All rights reserved. |
-# Use of this source code is governed by a BSD-style license that can be |
-# found in the LICENSE file. |
- |
-import telemetry.timeline.event_container as event_container |
- |
- |
-# Doesn't inherit from TimelineEvent because its only a temporary wrapper of a |
-# counter sample into an event. During stable operation, the samples are stored |
-# a dense array of values rather than in the long-form done by an Event. |
-class CounterSample(object): |
- def __init__(self, counter, sample_index): |
- self._counter = counter |
- self._sample_index = sample_index |
- |
- @property |
- def category(self): |
- return self._counter.category |
- |
- @property |
- def name(self): |
- return self._counter.full_name |
- |
- @property |
- def value(self): |
- return self._counter.samples[self._sample_index] |
- |
- @property |
- def start(self): |
- return self._counter.timestamps[self._sample_index] |
- |
- @start.setter |
- def start(self, start): |
- self._counter.timestamps[self._sample_index] = start |
- |
- @property |
- def duration(self): |
- return 0 |
- |
- @property |
- def end(self): |
- return self.start |
- |
- @property |
- def thread_start(self): |
- return None |
- |
- @property |
- def thread_duration(self): |
- return None |
- |
- @property |
- def thread_end(self): |
- return None |
- |
- |
-class Counter(event_container.TimelineEventContainer): |
- """ Stores all the samples for a given counter. |
- """ |
- def __init__(self, parent, category, name): |
- super(Counter, self).__init__(name, parent) |
- self.category = category |
- self.full_name = category + '.' + name |
- self.samples = [] |
- self.timestamps = [] |
- self.series_names = [] |
- self.totals = [] |
- self.max_total = 0 |
- |
- def IterChildContainers(self): |
- return |
- yield # pylint: disable=unreachable |
- |
- def IterEventsInThisContainer(self, event_type_predicate, event_predicate): |
- if not event_type_predicate(CounterSample) or not self.timestamps: |
- return |
- |
- # Pass event_predicate a reused CounterSample instance to avoid |
- # creating a ton of garbage for rejected samples. |
- test_sample = CounterSample(self, 0) |
- for i in xrange(len(self.timestamps)): |
- test_sample._sample_index = i # pylint: disable=protected-access |
- if event_predicate(test_sample): |
- yield CounterSample(self, i) |
- |
- @property |
- def num_series(self): |
- return len(self.series_names) |
- |
- @property |
- def num_samples(self): |
- return len(self.timestamps) |
- |
- def FinalizeImport(self): |
- if self.num_series * self.num_samples != len(self.samples): |
- raise ValueError( |
- 'Length of samples must be a multiple of length of timestamps.') |
- |
- self.totals = [] |
- self.max_total = 0 |
- if not len(self.samples): |
- return |
- |
- max_total = None |
- for i in xrange(self.num_samples): |
- total = 0 |
- for j in xrange(self.num_series): |
- total += self.samples[i * self.num_series + j] |
- self.totals.append(total) |
- if max_total is None or total > max_total: |
- max_total = total |
- self.max_total = max_total |