| OLD | NEW |
| (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 | |
| OLD | NEW |