Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(133)

Side by Side Diff: tools/telemetry/telemetry/timeline_event.py

Issue 12278015: [Telemetry] Reorganize everything. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Re-add shebangs. Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 # Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 class TimelineEvent(object):
6 """Represents a timeline event."""
7 def __init__(self, name, start_time_ms, duration_ms, args=None):
8 self.name = name
9 self.start_time_ms = start_time_ms
10 self.duration_ms = duration_ms
11 self.children = []
12 self.args = args
13
14 @property
15 def end_time_ms(self):
16 return self.start_time_ms + self.duration_ms
17
18 @property
19 def self_time_ms(self):
20 """Time spent in this function less any time spent in child events."""
21 child_total = sum(
22 [e.duration_ms for e in self.children])
23 return self.duration_ms - child_total
24
25 def __repr__(self):
26 if self.args:
27 args_str = ', ' + repr(self.args)
28 else:
29 args_str = ''
30
31 return "TimelineEvent(name='%s', start_ms=%f, duration_ms=%s%s)" % (
32 self.name,
33 self.start_time_ms,
34 self.duration_ms,
35 args_str)
36
37 @staticmethod
38 def _GetAllChildrenRecursive(events, item):
39 events.append(item)
40 for child in item.children:
41 TimelineEvent._GetAllChildrenRecursive(events, child)
42
43 def GetAllChildrenRecursive(self, include_self=False):
44 events = []
45 TimelineEvent._GetAllChildrenRecursive(events, self)
46 if not include_self:
47 del events[0]
48 return events
OLDNEW
« no previous file with comments | « tools/telemetry/telemetry/test/tab_test_case.py ('k') | tools/telemetry/telemetry/timeline_event_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698