OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <!-- | 2 <!-- |
3 Copyright 2016 The Chromium Authors. All rights reserved. | 3 Copyright 2016 The Chromium Authors. All rights reserved. |
4 Use of this source code is governed by a BSD-style license that can be | 4 Use of this source code is governed by a BSD-style license that can be |
5 found in the LICENSE file. | 5 found in the LICENSE file. |
6 --> | 6 --> |
7 | 7 |
8 <link rel="import" href="/tracing/metrics/metric_registry.html"> | 8 <link rel="import" href="/tracing/metrics/metric_registry.html"> |
9 <link rel="import" href="/tracing/model/helpers/chrome_model_helper.html"> | 9 <link rel="import" href="/tracing/model/helpers/chrome_model_helper.html"> |
10 <link rel="import" href="/tracing/model/helpers/chrome_renderer_helper.html"> | 10 <link rel="import" href="/tracing/model/helpers/chrome_renderer_helper.html"> |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
59 | 59 |
60 var processCpuTime = 0; | 60 var processCpuTime = 0; |
61 for (var tid in process.threads) { | 61 for (var tid in process.threads) { |
62 var thread = process.threads[tid]; | 62 var thread = process.threads[tid]; |
63 var threadCpuTime = 0; | 63 var threadCpuTime = 0; |
64 thread.sliceGroup.topLevelSlices.forEach(function(slice) { | 64 thread.sliceGroup.topLevelSlices.forEach(function(slice) { |
65 if (slice.duration === 0) | 65 if (slice.duration === 0) |
66 return; | 66 return; |
67 if (!slice.cpuDuration) | 67 if (!slice.cpuDuration) |
68 return; | 68 return; |
69 var sliceRange = tr.b.Range.fromExplicitRange(slice.start, slice.end); | 69 var sliceRange = tr.b.math.Range.fromExplicitRange( |
| 70 slice.start, slice.end); |
70 var intersection = rangeOfInterest.findIntersection(sliceRange); | 71 var intersection = rangeOfInterest.findIntersection(sliceRange); |
71 var fractionOfSliceInsideRangeOfInterest = | 72 var fractionOfSliceInsideRangeOfInterest = |
72 intersection.duration / slice.duration; | 73 intersection.duration / slice.duration; |
73 | 74 |
74 // We assume that if a slice doesn't lie entirely inside the range of | 75 // We assume that if a slice doesn't lie entirely inside the range of |
75 // interest, then the CPU time is evenly distributed inside of the | 76 // interest, then the CPU time is evenly distributed inside of the |
76 // slice. | 77 // slice. |
77 threadCpuTime += | 78 threadCpuTime += |
78 slice.cpuDuration * fractionOfSliceInsideRangeOfInterest; | 79 slice.cpuDuration * fractionOfSliceInsideRangeOfInterest; |
79 }); | 80 }); |
(...skipping 29 matching lines...) Expand all Loading... |
109 | 110 |
110 tr.metrics.MetricRegistry.register(cpuTimeMetric, { | 111 tr.metrics.MetricRegistry.register(cpuTimeMetric, { |
111 supportsRangeOfInterest: true | 112 supportsRangeOfInterest: true |
112 }); | 113 }); |
113 | 114 |
114 return { | 115 return { |
115 cpuTimeMetric, | 116 cpuTimeMetric, |
116 }; | 117 }; |
117 }); | 118 }); |
118 </script> | 119 </script> |
OLD | NEW |