Chromium Code Reviews| Index: tools/telemetry/telemetry/core/timeline/slice.py |
| diff --git a/tools/telemetry/telemetry/core/timeline/slice.py b/tools/telemetry/telemetry/core/timeline/slice.py |
| index 5ce2b28a84d9598994979b42073c8a154018065a..26c4dc240d7cabeb950ab4ffe9eeaada1366f1af 100644 |
| --- a/tools/telemetry/telemetry/core/timeline/slice.py |
| +++ b/tools/telemetry/telemetry/core/timeline/slice.py |
| @@ -13,10 +13,11 @@ class Slice(timeline_event.TimelineEvent): |
| All time units are stored in milliseconds. |
| """ |
| - def __init__(self, parent_thread, category, name, timestamp, |
| - args=None, duration=0): |
| + def __init__(self, parent_thread, category, name, timestamp, duration=0, |
| + thread_timestamp=None, thread_duration=None, args=None): |
| super(Slice, self).__init__( |
| - category, name, timestamp, duration, args=args) |
| + category, name, timestamp, duration, thread_timestamp, thread_duration, |
| + args) |
| self.parent_thread = parent_thread |
| self.parent_slice = None |
| self.sub_slices = [] |
| @@ -39,6 +40,23 @@ class Slice(timeline_event.TimelineEvent): |
| [e.duration for e in self.sub_slices]) |
| return self.duration - child_total |
|
nduca
2013/12/03 07:18:55
unit test for this new function plz
ernstm
2013/12/03 20:55:54
Done.
|
| + @property |
| + def self_thread_time(self): |
| + """Thread (scheduled) time spent in this function less any thread time spent |
| + in child events. Returns None if the slice or any of its children does not |
| + have a thread_duration value. |
| + """ |
| + if not self.thread_duration: |
| + return None |
| + |
| + child_total = 0 |
| + for e in self.sub_slices: |
| + if e.thread_duration == None: |
| + return None |
| + child_total += e.thread_duration |
| + |
| + return self.thread_duration - child_total |
| + |
| def _GetSubSlicesRecursive(self): |
| for sub_slice in self.sub_slices: |
| for s in sub_slice.GetAllSubSlices(): |