| 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/base/category_util.html"> | 8 <link rel="import" href="/tracing/base/category_util.html"> |
| 9 <link rel="import" href="/tracing/base/piecewise_linear_function.html"> | 9 <link rel="import" href="/tracing/base/math/piecewise_linear_function.html"> |
| 10 <link rel="import" href="/tracing/base/range.html"> | 10 <link rel="import" href="/tracing/base/math/range.html"> |
| 11 <link rel="import" href="/tracing/base/range_utils.html"> | 11 <link rel="import" href="/tracing/base/math/range_utils.html"> |
| 12 <link rel="import" href="/tracing/base/unit.html"> | 12 <link rel="import" href="/tracing/base/unit.html"> |
| 13 <link rel="import" href="/tracing/metrics/metric_registry.html"> | 13 <link rel="import" href="/tracing/metrics/metric_registry.html"> |
| 14 <link rel="import" href="/tracing/value/histogram.html"> | 14 <link rel="import" href="/tracing/value/histogram.html"> |
| 15 | 15 |
| 16 <script> | 16 <script> |
| 17 'use strict'; | 17 'use strict'; |
| 18 | 18 |
| 19 tr.exportTo('tr.metrics.v8.utils', function() { | 19 tr.exportTo('tr.metrics.v8.utils', function() { |
| 20 // The title of the idle task event. | 20 // The title of the idle task event. |
| 21 var IDLE_TASK_EVENT = 'SingleThreadIdleTaskRunner::RunTask'; | 21 var IDLE_TASK_EVENT = 'SingleThreadIdleTaskRunner::RunTask'; |
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 178 } | 178 } |
| 179 } | 179 } |
| 180 | 180 |
| 181 /** | 181 /** |
| 182 * Given a list of intervals, returns a new list with all overalapping | 182 * Given a list of intervals, returns a new list with all overalapping |
| 183 * intervals merged into a single interval. | 183 * intervals merged into a single interval. |
| 184 */ | 184 */ |
| 185 function unionOfIntervals(intervals) { | 185 function unionOfIntervals(intervals) { |
| 186 if (intervals.length === 0) | 186 if (intervals.length === 0) |
| 187 return []; | 187 return []; |
| 188 return tr.b.mergeRanges( | 188 return tr.b.math.mergeRanges( |
| 189 intervals.map(x => { return { min: x.start, max: x.end }; }), 1e-6, | 189 intervals.map(x => { return { min: x.start, max: x.end }; }), 1e-6, |
| 190 function(ranges) { | 190 function(ranges) { |
| 191 return { | 191 return { |
| 192 start: ranges.reduce( | 192 start: ranges.reduce( |
| 193 (acc, x) => Math.min(acc, x.min), ranges[0].min), | 193 (acc, x) => Math.min(acc, x.min), ranges[0].min), |
| 194 end: ranges.reduce((acc, x) => Math.max(acc, x.max), ranges[0].max) | 194 end: ranges.reduce((acc, x) => Math.max(acc, x.max), ranges[0].max) |
| 195 }; | 195 }; |
| 196 } | 196 } |
| 197 ); | 197 ); |
| 198 } | 198 } |
| 199 | 199 |
| 200 function hasV8Stats(globalMemoryDump) { | 200 function hasV8Stats(globalMemoryDump) { |
| 201 var v8stats = undefined; | 201 var v8stats = undefined; |
| 202 globalMemoryDump.iterateContainerDumps(function(dump) { | 202 globalMemoryDump.iterateContainerDumps(function(dump) { |
| 203 v8stats = v8stats || dump.getMemoryAllocatorDumpByFullName('v8'); | 203 v8stats = v8stats || dump.getMemoryAllocatorDumpByFullName('v8'); |
| 204 }); | 204 }); |
| 205 return !!v8stats; | 205 return !!v8stats; |
| 206 } | 206 } |
| 207 | 207 |
| 208 function rangeForMemoryDumps(model) { | 208 function rangeForMemoryDumps(model) { |
| 209 var startOfFirstDumpWithV8 = | 209 var startOfFirstDumpWithV8 = |
| 210 model.globalMemoryDumps.filter(hasV8Stats).reduce( | 210 model.globalMemoryDumps.filter(hasV8Stats).reduce( |
| 211 (start, dump) => Math.min(start, dump.start), Infinity); | 211 (start, dump) => Math.min(start, dump.start), Infinity); |
| 212 if (startOfFirstDumpWithV8 === Infinity) | 212 if (startOfFirstDumpWithV8 === Infinity) |
| 213 return new tr.b.Range(); // Empty range. | 213 return new tr.b.math.Range(); // Empty range. |
| 214 return tr.b.Range.fromExplicitRange(startOfFirstDumpWithV8, Infinity); | 214 return tr.b.math.Range.fromExplicitRange(startOfFirstDumpWithV8, Infinity); |
| 215 } | 215 } |
| 216 | 216 |
| 217 return { | 217 return { |
| 218 findParent, | 218 findParent, |
| 219 groupAndProcessEvents, | 219 groupAndProcessEvents, |
| 220 isCompileEvent, | 220 isCompileEvent, |
| 221 isForcedGarbageCollectionEvent, | 221 isForcedGarbageCollectionEvent, |
| 222 isFullMarkCompactorEvent, | 222 isFullMarkCompactorEvent, |
| 223 isGarbageCollectionEvent, | 223 isGarbageCollectionEvent, |
| 224 isIdleTask, | 224 isIdleTask, |
| 225 isIncrementalMarkingEvent, | 225 isIncrementalMarkingEvent, |
| 226 isLatencyMarkCompactorEvent, | 226 isLatencyMarkCompactorEvent, |
| 227 isLowMemoryEvent, | 227 isLowMemoryEvent, |
| 228 isMemoryMarkCompactorEvent, | 228 isMemoryMarkCompactorEvent, |
| 229 isScavengerEvent, | 229 isScavengerEvent, |
| 230 isSubGarbageCollectionEvent, | 230 isSubGarbageCollectionEvent, |
| 231 isTopGarbageCollectionEvent, | 231 isTopGarbageCollectionEvent, |
| 232 isTopV8ExecuteEvent, | 232 isTopV8ExecuteEvent, |
| 233 isV8Event, | 233 isV8Event, |
| 234 isV8ExecuteEvent, | 234 isV8ExecuteEvent, |
| 235 rangeForMemoryDumps, | 235 rangeForMemoryDumps, |
| 236 subGarbageCollectionEventName, | 236 subGarbageCollectionEventName, |
| 237 topGarbageCollectionEventName, | 237 topGarbageCollectionEventName, |
| 238 unionOfIntervals, | 238 unionOfIntervals, |
| 239 }; | 239 }; |
| 240 }); | 240 }); |
| 241 </script> | 241 </script> |
| OLD | NEW |