diff options
Diffstat (limited to 'catapult/perf_insights')
54 files changed, 17167 insertions, 302 deletions
diff --git a/catapult/perf_insights/app.yaml b/catapult/perf_insights/app.yaml index 443032c1..2be88297 100644 --- a/catapult/perf_insights/app.yaml +++ b/catapult/perf_insights/app.yaml @@ -16,3 +16,7 @@ handlers: - url: /upload script: perf_insights.upload.app secure: always + +env_variables: + # Comment out the next line to use the appengine default bucket. + GCS_BUCKET_NAME: 'performance-insights' diff --git a/catapult/perf_insights/bin/run_dev_server_tests b/catapult/perf_insights/bin/run_dev_server_tests index db6b43b0..f8ff601b 100755 --- a/catapult/perf_insights/bin/run_dev_server_tests +++ b/catapult/perf_insights/bin/run_dev_server_tests @@ -10,5 +10,5 @@ if __name__ == '__main__': catapult_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..')) sys.path.append(catapult_path) - from build import run_dev_server_tests + from catapult_build import run_dev_server_tests sys.exit(run_dev_server_tests.Main(sys.argv + ['--tests=perf_insights'])) diff --git a/catapult/perf_insights/bin/run_tests b/catapult/perf_insights/bin/run_tests index 4621c8e4..49d80a7e 100755 --- a/catapult/perf_insights/bin/run_tests +++ b/catapult/perf_insights/bin/run_tests @@ -22,5 +22,5 @@ if __name__ == '__main__': catapult_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..')) sys.path.append(catapult_path) - from build import test_runner + from catapult_build import test_runner sys.exit(test_runner.Main('perf_insights', _TESTS, sys.argv)) diff --git a/catapult/perf_insights/bin/wr b/catapult/perf_insights/bin/wr index d9c66c49..922e95a2 100755 --- a/catapult/perf_insights/bin/wr +++ b/catapult/perf_insights/bin/wr @@ -12,7 +12,7 @@ if __name__ == '__main__': sys.path.append(perf_insights_path) pi_report_file = os.path.join(perf_insights_path, - 'perf_insights/ui/wr/weather_report.html') + 'perf_insights/ui/reports/weather_report.html') from perf_insights_build import pi_report_to_html sys.exit(pi_report_to_html.Main(sys.argv, diff --git a/catapult/perf_insights/perf_insights/map_runner.py b/catapult/perf_insights/perf_insights/map_runner.py index af2dafe0..e349e5d0 100644 --- a/catapult/perf_insights/perf_insights/map_runner.py +++ b/catapult/perf_insights/perf_insights/map_runner.py @@ -18,33 +18,34 @@ AUTO_JOB_COUNT = 'auto-job-count' class MapRunner: def __init__(self, trace_handles, map_function_handle, - stop_on_error=False): + stop_on_error=False, progress_reporter=None): self._map_function_handle = map_function_handle self._work_queue = queue.Queue() self._result_queue = queue.Queue() self._stop_on_error = stop_on_error self._abort = False self._failed_run_info_to_dump = None - self._progress_reporter = gtest_progress_reporter.GTestProgressReporter( - sys.stdout) + if progress_reporter is None: + self._progress_reporter = gtest_progress_reporter.GTestProgressReporter( + sys.stdout) + else: + self._progress_reporter = progress_reporter for trace_handle in trace_handles: self._work_queue.put(trace_handle) def _ProcessTrace(self, trace_handle): run_info = trace_handle.run_info subresults = results_module.Results() - # TODO: Modify ProgressReporter API to deal with interleaving runs so - # that we can use self._progress_reporter here. - progress_reporter = gtest_progress_reporter.GTestProgressReporter( - sys.stdout) - progress_reporter.WillRun(run_info) + run_reporter = self._progress_reporter.WillRun(run_info) map_single_trace.MapSingleTrace( subresults, trace_handle, self._map_function_handle) + for v in subresults.all_values: + run_reporter.DidAddValue(v) self._result_queue.put(subresults) had_failure = subresults.DoesRunContainFailure(run_info) - progress_reporter.DidRun(run_info, had_failure) + run_reporter.DidRun(had_failure) if self._stop_on_error and had_failure: self._failed_run_info_to_dump = run_info self._abort = True diff --git a/catapult/perf_insights/perf_insights/map_single_trace.html b/catapult/perf_insights/perf_insights/map_single_trace.html index 6dd30fa6..fa8dc068 100644 --- a/catapult/perf_insights/perf_insights/map_single_trace.html +++ b/catapult/perf_insights/perf_insights/map_single_trace.html @@ -21,19 +21,19 @@ tr.exportTo('pi', function() { var FailureValue = pi.v.FailureValue; - function runAndConvertErrorsToFailureValues(results, run_info, cb, opt_this) { + function runAndConvertErrorsToFailureValues(results, runInfo, cb, opt_this) { try { cb.call(opt_this); } catch (err) { var err = tr.b.normalizeException(err); results.addValue(new FailureValue( - run_info, err.typeName, + runInfo, err.typeName, {description: err.message, stack: err.stack})); } } - function mapSingleTrace(results, run_info, traceData, mapFunction, + function mapSingleTrace(results, runInfo, traceData, mapFunction, opt_metadata) { // Load the model. var model = new tr.Model(); @@ -61,15 +61,15 @@ tr.exportTo('pi', function() { } // Map the function. - var numResultsBeforeMapping = results.all_values.length; + var numResultsBeforeMapping = results.allValues.length; try { - mapFunction(results, run_info, model); + mapFunction(results, runInfo, model); } catch (ex) { ex.name = 'MapFunctionError'; throw ex; } - if (results.all_values.length === numResultsBeforeMapping) { + if (results.allValues.length === numResultsBeforeMapping) { var err = new Error('Mapper did not add any results! ' + 'Add a SkipValue if this was intentional.'); err.name = 'NoResultsAddedError'; diff --git a/catapult/perf_insights/perf_insights/map_single_trace_cmdline.html b/catapult/perf_insights/perf_insights/map_single_trace_cmdline.html index 82e44515..5776c350 100644 --- a/catapult/perf_insights/perf_insights/map_single_trace_cmdline.html +++ b/catapult/perf_insights/perf_insights/map_single_trace_cmdline.html @@ -20,11 +20,11 @@ tr.exportTo('pi', function() { return loadMapFunctionFromFileName(mapFunctionHandle.mapFunctionFileName); // Find the mapper by name. - loadHTML('/perf_insights/perf_insights_full_config.html') + loadHTML('/perf_insights/perf_insights_full_config.html'); var typeInfo = pi.MapFunction.findTypeInfoMatching(function(typeInfo) { return typeInfo.constructor.name === mapFunctionHandle.mapFunctionName; - }) - if (typeInfo === undefined) { + }); + if (typeInfo === undefined) { var err = new Error( 'No mapper registered in perf_insights_full_config named ' + mapFunctionHandle.mapFunctionName); @@ -49,7 +49,8 @@ tr.exportTo('pi', function() { // Verify a mapFunction was defined. var numTypeInfosNow = allTypeInfos.length; if (numTypeInfosNow !== (numTypeInfosBefore + 1)) { - var err = new Error(mapFunctionFileName + ' did not call defineMapFunction'); + var err = new Error(mapFunctionFileName + + ' did not call defineMapFunction'); err.name = 'MapFunctionNotDefinedError'; throw err; } @@ -64,20 +65,20 @@ tr.exportTo('pi', function() { throw new Error('Must provide four arguments'); var options = { - run_info: pi.v.RunInfo.fromDict(JSON.parse(args[0])), + runInfo: pi.v.RunInfo.fromDict(JSON.parse(args[0])), mapFunctionHandle: JSON.parse(args[1]), filenameToMap: args[2], metadata: JSON.parse(args[3]) }; var results = new pi.r.Results(); - results.willRun(options.run_info); + results.willRun(options.runInfo); pi.runAndConvertErrorsToFailureValues( - results, options.run_info, + results, options.runInfo, function() { var mapFunction = getMapFunctionFromMapFunctionHandle( - options.mapFunctionHandle) + options.mapFunctionHandle); // Read the mapfile. try { @@ -88,14 +89,14 @@ tr.exportTo('pi', function() { throw err; } - pi.mapSingleTrace(results, options.run_info, traceData, + pi.mapSingleTrace(results, options.runInfo, traceData, mapFunction, options.metadata); }); - results.didRun(options.run_info); + results.didRun(options.runInfo); results.didFinishAllRuns(); - results.all_values.forEach(function(value) { + results.allValues.forEach(function(value) { valueAsDict = value.asDict(); console.log('MAP_RESULT_VALUE: ' + JSON.stringify(valueAsDict)); }); diff --git a/catapult/perf_insights/perf_insights/wr/__init__.py b/catapult/perf_insights/perf_insights/mappers/__init__.py index 047b03ca..047b03ca 100644 --- a/catapult/perf_insights/perf_insights/wr/__init__.py +++ b/catapult/perf_insights/perf_insights/mappers/__init__.py diff --git a/catapult/perf_insights/perf_insights/mappers/all_mappers.html b/catapult/perf_insights/perf_insights/mappers/all_mappers.html new file mode 100644 index 00000000..2a7991ff --- /dev/null +++ b/catapult/perf_insights/perf_insights/mappers/all_mappers.html @@ -0,0 +1,10 @@ +<!DOCTYPE html> +<!-- +Copyright (c) 2013 The Chromium Authors. All rights reserved. +Use of this source code is governed by a BSD-style license that can be +found in the LICENSE file. +--> + +<link rel="import" + href="/perf_insights/mappers/weather_report_map_function.html"> +<link rel="import" href="/perf_insights/mappers/task_info_map_function.html"> diff --git a/catapult/perf_insights/perf_insights/wr/reduce.html b/catapult/perf_insights/perf_insights/mappers/reduce.html index 4c306c49..4c306c49 100644 --- a/catapult/perf_insights/perf_insights/wr/reduce.html +++ b/catapult/perf_insights/perf_insights/mappers/reduce.html diff --git a/catapult/perf_insights/perf_insights/wr/slice_cost.html b/catapult/perf_insights/perf_insights/mappers/slice_cost.html index 7ceb0224..2b0f1a17 100644 --- a/catapult/perf_insights/perf_insights/wr/slice_cost.html +++ b/catapult/perf_insights/perf_insights/mappers/slice_cost.html @@ -4,7 +4,7 @@ Copyright (c) 2015 The Chromium Authors. All rights reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. --> -<link rel="import" href="/perf_insights/wr/reduce.html"> +<link rel="import" href="/perf_insights/mappers/reduce.html"> <script> 'use strict'; @@ -56,7 +56,7 @@ tr.exportTo('pi.wr', function() { function getSliceCostReport(model, threadGrouping, railTypeNameByGUID) { var reduce = new pi.wr.StreamingReducer(SliceCostInfo.asReduceTarget); - + function generateDomainCosts(slice) { // V8.Execute events may generate several sliceCostInfo, based on the // origin of the JS being executed. diff --git a/catapult/perf_insights/perf_insights/mappers/task_info_map_function.html b/catapult/perf_insights/perf_insights/mappers/task_info_map_function.html new file mode 100644 index 00000000..f706edcb --- /dev/null +++ b/catapult/perf_insights/perf_insights/mappers/task_info_map_function.html @@ -0,0 +1,115 @@ +<!DOCTYPE HTML> +<!-- +Copyright (c) 2015 The Chromium Authors. All rights reserved. +Use of this source code is governed by a BSD-style license that can be +found in the LICENSE file. +--> + +<link rel="import" href="/perf_insights/map_function.html"> +<link rel="import" href="/perf_insights/value/value.html"> +<link rel="import" href="/tracing/base/units/histogram.html"> +<link rel="import" href="/tracing/model/flow_event.html"> +<link rel="import" href="/tracing/model/slice.html"> + +<script> +tr.exportTo('pie', function() { + // Granularity of the histogram. + var HISTOGRAM_MAX = 250; + var NUM_BINS = 50; + + function taskInfoMapFunction(results, run_info, model) { + addTimeInQueue(results, run_info, model); + addTopLevelTasksDuration(results, run_info, model); + } + + function eatTrailingDigits(str) { + return str && str.replace(/[\d/]*$/, ''); + } + + function histogramsToDict(dict) { + for (var process in dict) { + for (var thread in dict[process]) { + dict[process][thread] = dict[process][thread].asDict(); + } + } + } + + function addTimeInQueue(results, run_info, model) { + var timeInQueue = {}; + model.flowEvents.forEach(function(flowEvent) { + if (!flowEvent.endSlice instanceof tr.model.Slice) + return; + var thread = flowEvent.endSlice && flowEvent.endSlice.parentContainer; + if (!thread) + return; + var process = thread.getProcess(); + if (!process) + return; + var threadName = eatTrailingDigits(thread.name) || 'Unknown'; + var processName = eatTrailingDigits(process.name) || 'Unknown'; + addToHistogram(timeInQueue, processName, threadName, flowEvent.duration); + }); + histogramsToDict(timeInQueue); + results.addValue(new pi.v.DictValue( + run_info, + 'time_spent_in_queue', + timeInQueue)); + } + + function addTopLevelTasksDuration(results, run_info, model) { + var timeInTask = {}; + var cpuTimeInTask = {}; + model.getAllThreads().forEach(function(thread) { + var process = thread.getProcess(); + if (!process) + return; + var threadName = eatTrailingDigits(thread.name) || thread.tid; + var processName = eatTrailingDigits(process.name) || process.pid; + if (!thread.sliceGroup.length) + return; + thread.sliceGroup.slices.forEach(function(slice) { + if (!isTopLevelTask(slice)) + return; + addToHistogram(timeInTask, processName, threadName, slice.duration); + addToHistogram(cpuTimeInTask, processName, threadName, + slice.cpuDuration); + }); + }); + histogramsToDict(timeInTask); + results.addValue(new pi.v.DictValue( + run_info, + 'time_spent_in_top_level_task', + timeInTask)); + histogramsToDict(cpuTimeInTask); + results.addValue(new pi.v.DictValue( + run_info, + 'cpu_time_spent_in_top_level_task', + cpuTimeInTask)); + } + + // A slice is top level if it's on the receiving end of a post task and no + // slice above it is. + function isTopLevelTask(slice) { + if (!slice.inFlowEvents.length) + return false; + return !slice.parentSlice || !isTopLevelTask(slice.parentSlice); + } + + function addToHistogram(dict, processName, threadName, value) { + dict[processName] = dict[processName] || {}; + dict[processName][threadName] = dict[processName][threadName] || + tr.b.u.Histogram.createLinear( + tr.b.u.Units.timeDurationInMs, + tr.b.Range.fromExplicitRange(0, HISTOGRAM_MAX), + NUM_BINS); + dict[processName][threadName].add(value); + } + + pi.MapFunction.register(taskInfoMapFunction); + + // Exporting for tests. + return { + taskInfoMapFunctionForTest: taskInfoMapFunction + }; +}); +</script> diff --git a/catapult/perf_insights/perf_insights/mappers/task_info_map_function_test.html b/catapult/perf_insights/perf_insights/mappers/task_info_map_function_test.html new file mode 100644 index 00000000..ff7b1348 --- /dev/null +++ b/catapult/perf_insights/perf_insights/mappers/task_info_map_function_test.html @@ -0,0 +1,77 @@ +<!DOCTYPE html> +<!-- +Copyright (c) 2015 The Chromium Authors. All rights reserved. +Use of this source code is governed by a BSD-style license that can be +found in the LICENSE file. +--> + +<link rel="import" href="/perf_insights/value/value.html"> +<link rel="import" href="/perf_insights/value/run_info.html"> +<link rel="import" href="/perf_insights/results/results.html"> +<link rel="import" href="/perf_insights/mappers/task_info_map_function.html"> +<link rel="import" href="/tracing/base/units/histogram.html"> +<link rel="import" href="/tracing/core/test_utils.html"> + +<script> +'use strict'; + +tr.b.unittest.testSuite(function() { + var test_utils = tr.c.TestUtils; + + test('taskInfoMapFunctionTest', function() { + var m = test_utils.newModel(function(m) { + var p1 = m.getOrCreateProcess(1); + p1.name = 'Process'; + var t2 = p1.getOrCreateThread(2); + t2.name = 'Thread'; + // t2_s0 is not a top-level, no incoming flow. + var t2_s0 = test_utils.newSliceEx( + { start: 0, duration: 9.7, cpuStart: 0, cpuDuration: 5.3}); + // t2_s1 is not a top-level, no incoming flow. + var t2_s1 = test_utils.newSliceEx( + { start: 11, duration: 20.1, cpuStart: 11, cpuDuration: 8.9 }); + // t2_s2 is a top-level slice: f2 flows into it. + var t2_s2 = test_utils.newSliceEx( + { start: 15, duration: 10.4, cpuStart: 15, cpuDuration: 3.0 }); + // t2_s3 is not a top-level slice because it's a child of t2_s2. + var t2_s3 = test_utils.newSliceEx( + { start: 17, duration: 2.4, cpuStart: 17, cpuDuration: 1.1 }); + t2.sliceGroup.pushSlice(t2_s0); + t2.sliceGroup.pushSlice(t2_s1); + t2.sliceGroup.pushSlice(t2_s2); + t2.sliceGroup.pushSlice(t2_s3); + var f1 = test_utils.newFlowEventEx({ + start: 0, duration: 18.1, startSlice: t2_s0, endSlice: t2_s3 + }); + var f2 = test_utils.newFlowEventEx({ + start: 9, duration: 7.2, startSlice: t2_s0, endSlice: t2_s2 + }); + m.flowEvents.push(f1); + m.flowEvents.push(f2); + }); + + var results = new pi.r.Results(); + var runInfo = new pi.v.RunInfo('my_test.json'); + pie.taskInfoMapFunctionForTest(results, runInfo, m); + + assert.equal(results.allValues.length, 3); + var value = results.allValues[0]; + assert.equal(value.name, 'time_spent_in_queue'); + assert.equal(Object.keys(value.value['Process']).length, 1); + var histogram = tr.b.u.Histogram.fromDict(value.value['Process']['Thread']); + assert.equal(histogram.getBinForValue(7.2).count, 1); + assert.equal(histogram.getBinForValue(18.1).count, 1); + value = results.allValues[1]; + assert.equal(value.name, 'time_spent_in_top_level_task'); + assert.equal(Object.keys(value.value['Process']).length, 1); + histogram = tr.b.u.Histogram.fromDict(value.value['Process']['Thread']); + assert.equal(histogram.getBinForValue(10.4).count, 1); + value = results.allValues[2]; + assert.equal(value.name, 'cpu_time_spent_in_top_level_task'); + assert.equal(Object.keys(value.value['Process']).length, 1); + histogram = tr.b.u.Histogram.fromDict(value.value['Process']['Thread']); + assert.equal(histogram.getBinForValue(3.0).count, 1); + }); +}); + +</script> diff --git a/catapult/perf_insights/perf_insights/wr/thread_grouping.html b/catapult/perf_insights/perf_insights/mappers/thread_grouping.html index 3d76038f..3d76038f 100644 --- a/catapult/perf_insights/perf_insights/wr/thread_grouping.html +++ b/catapult/perf_insights/perf_insights/mappers/thread_grouping.html diff --git a/catapult/perf_insights/perf_insights/wr/thread_grouping_test.html b/catapult/perf_insights/perf_insights/mappers/thread_grouping_test.html index 8fc7e4be..731f5197 100644 --- a/catapult/perf_insights/perf_insights/wr/thread_grouping_test.html +++ b/catapult/perf_insights/perf_insights/mappers/thread_grouping_test.html @@ -8,7 +8,7 @@ found in the LICENSE file. <link rel="import" href="/perf_insights/value/value.html"> <link rel="import" href="/perf_insights/value/run_info.html"> <link rel="import" href="/perf_insights/results/results.html"> -<link rel="import" href="/perf_insights/wr/weather_report_map_function.html"> +<link rel="import" href="/perf_insights/mappers/weather_report_map_function.html"> <link rel="import" href="/tracing/core/test_utils.html"> <link rel="import" href="/tracing/extras/chrome/chrome_test_utils.html"> @@ -16,9 +16,9 @@ found in the LICENSE file. 'use strict'; tr.b.unittest.testSuite(function() { - var test_utils = tr.c.test_utils; + var test_utils = tr.c.TestUtils; test('basicChrome', function() { - var m = tr.e.audits.newChromeModel(function(m) { + var m = tr.e.chrome.ChromeTestUtils.newChromeModel(function(m) { // Browser. m.browserMain.sliceGroup.pushSlice(test_utils.newSliceEx({ name: 'BrowserSlice', diff --git a/catapult/perf_insights/perf_insights/wr/weather_report_map_function.html b/catapult/perf_insights/perf_insights/mappers/weather_report_map_function.html index 681176b2..f1017fdd 100644 --- a/catapult/perf_insights/perf_insights/wr/weather_report_map_function.html +++ b/catapult/perf_insights/perf_insights/mappers/weather_report_map_function.html @@ -6,35 +6,38 @@ found in the LICENSE file. --> <link rel="import" href="/perf_insights/map_function.html"> <link rel="import" href="/perf_insights/value/value.html"> -<link rel="import" href="/perf_insights/wr/slice_cost.html"> -<link rel="import" href="/perf_insights/wr/thread_grouping.html"> +<link rel="import" href="/perf_insights/mappers/slice_cost.html"> +<link rel="import" href="/perf_insights/mappers/thread_grouping.html"> <link rel="import" href="/tracing/base/iteration_helpers.html"> <link rel="import" href="/tracing/extras/chrome/chrome_model_helper.html"> <link rel="import" href="/tracing/extras/rail/rail_interaction_record.html"> +<link rel="import" href="/tracing/extras/rail/rail_score.html"> <link rel="import" href="/tracing/model/ir_coverage.html"> <script> tr.exportTo('pi.wr', function() { function getWeatherReportFromModel(model) { - var railTypeNameByGUID = getRAILTypeNameForEventsByGUID(model); + var railIRs = model.interactionRecords.filter(function(ir) { + return ir instanceof tr.e.rail.RAILInteractionRecord; + }); + + var railTypeNameByGUID = getRAILTypeNameForEventsByGUID(model, railIRs); var threadGrouping = new pi.wr.ThreadGrouping(); threadGrouping.autoInitUsingHelpers(model); + var railScore = new tr.e.rail.RAILScore(railIRs); var wr = { - ir_coverage: tr.model.getIRCoverageFromModel(model), + railScore: railScore.asDict(), + irCoverage: tr.model.getIRCoverageFromModel(model), sliceCosts: pi.wr.getSliceCostReport(model, threadGrouping, railTypeNameByGUID) }; return wr; } - function getRAILTypeNameForEventsByGUID(model) { - var railIRs = model.interactionRecords.filter(function(ir) { - return ir instanceof tr.e.rail.RAILInteractionRecord; - }); - + function getRAILTypeNameForEventsByGUID(model, railIRs) { var railTypeNameByGUID = {}; railIRs.forEach(function applyAssociatedToRTN(ir) { ir.associatedEvents.forEach(function applyEventToRTN(event) { @@ -54,10 +57,9 @@ tr.exportTo('pi.wr', function() { } - function weatherReportMapFunction(results, run_info, model) { + function weatherReportMapFunction(results, runInfo, model) { var wr = pi.wr.getWeatherReportFromModel(model); - results.addValue(new pi.v.DictValue( - run_info, 'wr', pi.wr.getWeatherReportFromModel(model))); + results.addValue(new pi.v.DictValue(runInfo, 'wr', wr)); } pi.MapFunction.register(weatherReportMapFunction); @@ -67,4 +69,4 @@ tr.exportTo('pi.wr', function() { }; }); -</script>
\ No newline at end of file +</script> diff --git a/catapult/perf_insights/perf_insights/wr/weather_report_map_function_test.html b/catapult/perf_insights/perf_insights/mappers/weather_report_map_function_test.html index e8fee75f..e9091c99 100644 --- a/catapult/perf_insights/perf_insights/wr/weather_report_map_function_test.html +++ b/catapult/perf_insights/perf_insights/mappers/weather_report_map_function_test.html @@ -8,7 +8,7 @@ found in the LICENSE file. <link rel="import" href="/perf_insights/results/results.html"> <link rel="import" href="/perf_insights/value/run_info.html"> <link rel="import" href="/perf_insights/value/value.html"> -<link rel="import" href="/perf_insights/wr/weather_report_map_function.html"> +<link rel="import" href="/perf_insights/mappers/weather_report_map_function.html"> <link rel="import" href="/tracing/core/test_utils.html"> <link rel="import" href="/tracing/extras/rail/idle_interaction_record.html"> @@ -16,7 +16,7 @@ found in the LICENSE file. 'use strict'; tr.b.unittest.testSuite(function() { - var test_utils = tr.c.test_utils; + var test_utils = tr.c.TestUtils; var ThreadSlice = tr.model.ThreadSlice; test('basicModelTest', function() { @@ -30,11 +30,11 @@ tr.b.unittest.testSuite(function() { }); var results = new pi.r.Results(); - var run_info = new pi.v.RunInfo('my_test.json'); - pi.wr.weatherReportMapFunction(results, run_info, m); + var runInfo = new pi.v.RunInfo('my_test.json'); + pi.wr.weatherReportMapFunction(results, runInfo, m); - assert.equal(results.all_values.length, 1); - assert.isTrue(results.all_values[0] instanceof pi.v.DictValue); + assert.equal(results.allValues.length, 1); + assert.isTrue(results.allValues[0] instanceof pi.v.DictValue); }); test('basicWrTest', function() { diff --git a/catapult/perf_insights/perf_insights/perf_insights_full_config.html b/catapult/perf_insights/perf_insights/perf_insights_full_config.html index b9542685..66a42741 100644 --- a/catapult/perf_insights/perf_insights/perf_insights_full_config.html +++ b/catapult/perf_insights/perf_insights/perf_insights_full_config.html @@ -5,6 +5,4 @@ Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. --> <link rel="import" href="/perf_insights/perf_insights_full_config.html"> - -<!-- Optional but useful perf_insights cmdline bits are listed here. --> -<link rel="import" href="/perf_insights/wr/weather_report_map_function.html"> +<link rel="import" href="/perf_insights/mappers/all_mappers.html"> diff --git a/catapult/perf_insights/perf_insights/progress_reporter.py b/catapult/perf_insights/perf_insights/progress_reporter.py index b68901ba..b13270e3 100644 --- a/catapult/perf_insights/perf_insights/progress_reporter.py +++ b/catapult/perf_insights/perf_insights/progress_reporter.py @@ -2,17 +2,22 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -# Derived from telemetry ProgressReporter. Should stay close in architecture -# to telemetry ProgressReporter. -class ProgressReporter(object): - def WillRun(self, run_info): - pass +class RunReporter(object): + def __init__(self, run_info): + self.run_info = run_info def DidAddValue(self, value): pass - def DidRun(self, run_info, run_failed): + def DidRun(self, run_failed): pass + +# Derived from telemetry ProgressReporter. Should stay close in architecture +# to telemetry ProgressReporter. +class ProgressReporter(object): + def WillRun(self, run_info): + return RunReporter(run_info) + def DidFinishAllRuns(self, results): pass
\ No newline at end of file diff --git a/catapult/perf_insights/perf_insights/results/gtest_progress_reporter.py b/catapult/perf_insights/perf_insights/results/gtest_progress_reporter.py index c0f91739..3c728e32 100644 --- a/catapult/perf_insights/perf_insights/results/gtest_progress_reporter.py +++ b/catapult/perf_insights/perf_insights/results/gtest_progress_reporter.py @@ -8,6 +8,36 @@ from perf_insights import progress_reporter from perf_insights import value as value_module +class GTestRunReporter(progress_reporter.RunReporter): + def __init__(self, run_info, output_stream, timestamp): + super(GTestRunReporter, self).__init__(run_info) + self._output_stream = output_stream + self._timestamp = timestamp + + def _GetMs(self): + assert self._timestamp is not None, 'Did not call WillRun.' + return (time.time() - self._timestamp) * 1000 + + def DidAddValue(self, value): + super(GTestRunReporter, self).DidAddValue(value) + if isinstance(value, value_module.FailureValue): + print >> self._output_stream, value.GetGTestPrintString() + self._output_stream.flush() + elif isinstance(value, value_module.SkipValue): + print >> self._output_stream, '===== SKIPPING TEST %s: %s =====' % ( + value.run_info.display_name, value.reason) + + def DidRun(self, run_failed): + super(GTestRunReporter, self).DidRun(run_failed) + if run_failed: + print >> self._output_stream, '[ FAILED ] %s (%0.f ms)' % ( + self.run_info.display_name, self._GetMs()) + else: + print >> self._output_stream, '[ OK ] %s (%0.f ms)' % ( + self.run_info.display_name, self._GetMs()) + self._output_stream.flush() + + class GTestProgressReporter(progress_reporter.ProgressReporter): """A progress reporter that outputs the progress report in gtest style. @@ -22,38 +52,14 @@ class GTestProgressReporter(progress_reporter.ProgressReporter): def __init__(self, output_stream, output_skipped_tests_summary=False): super(GTestProgressReporter, self).__init__() self._output_stream = output_stream - self._timestamp = None self._output_skipped_tests_summary = output_skipped_tests_summary - def _GetMs(self): - assert self._timestamp is not None, 'Did not call WillRun.' - return (time.time() - self._timestamp) * 1000 - def WillRun(self, run_info): super(GTestProgressReporter, self).WillRun(run_info) print >> self._output_stream, '[ RUN ] %s' % ( run_info.display_name) self._output_stream.flush() - self._timestamp = time.time() - - def DidAddValue(self, value): - super(GTestProgressReporter, self).DidAddValue(value) - if isinstance(value, value_module.FailureValue): - print >> self._output_stream, value.GetGTestPrintString() - self._output_stream.flush() - elif isinstance(value, value_module.SkipValue): - print >> self._output_stream, '===== SKIPPING TEST %s: %s =====' % ( - value.run_info.display_name, value.reason) - - def DidRun(self, run_info, run_failed): - super(GTestProgressReporter, self).DidRun(run_info, run_failed) - if run_failed: - print >> self._output_stream, '[ FAILED ] %s (%0.f ms)' % ( - run_info.display_name, self._GetMs()) - else: - print >> self._output_stream, '[ OK ] %s (%0.f ms)' % ( - run_info.display_name, self._GetMs()) - self._output_stream.flush() + return GTestRunReporter(run_info, self._output_stream, time.time()) def DidFinishAllRuns(self, results): super(GTestProgressReporter, self).DidFinishAllRuns(results) diff --git a/catapult/perf_insights/perf_insights/results/progress_reporter.html b/catapult/perf_insights/perf_insights/results/progress_reporter.html index 228fa6ff..ff710c75 100644 --- a/catapult/perf_insights/perf_insights/results/progress_reporter.html +++ b/catapult/perf_insights/perf_insights/results/progress_reporter.html @@ -14,13 +14,13 @@ tr.exportTo('pi.r', function() { } ProgressReporter.prototype = { - willRun: function(run_info) { + willRun: function(runInfo) { }, didAddValue: function(value) { }, - didRun: function(run_info, run_failed) { + didRun: function(runInfo, run_failed) { }, diff --git a/catapult/perf_insights/perf_insights/results/results.html b/catapult/perf_insights/perf_insights/results/results.html index 29344081..98515103 100644 --- a/catapult/perf_insights/perf_insights/results/results.html +++ b/catapult/perf_insights/perf_insights/results/results.html @@ -12,17 +12,17 @@ found in the LICENSE file. tr.exportTo('pi.r', function() { function Results() { - this.all_values = []; - this._run_ids_that_have_failures = {}; + this.allValues = []; + this.runIdsThatHaveFailures_ = {}; } Results.fromDict = function(dict) { if (dict.runs === undefined) - throw new Error('Expected: run_info'); + throw new Error('Expected: runInfo'); if (dict.values === undefined) - throw new Error('Expected: run_info'); + throw new Error('Expected: runInfo'); - var runInfosById = tr.b.mapItems(dict.runs, function(run_id, dict) { + var runInfosById = tr.b.mapItems(dict.runs, function(runId, dict) { return pi.v.RunInfo.fromDict(dict); }); @@ -31,7 +31,7 @@ tr.exportTo('pi.r', function() { var runInfo = runInfosById[valueDict.run_id]; if (runInfo === undefined) { debugger; - throw new Error('run_info not found'); + throw new Error('runInfo not found'); } var value = pi.v.Value.fromDict(runInfo, valueDict); results.addValue(value); @@ -40,16 +40,16 @@ tr.exportTo('pi.r', function() { } Results.prototype = { - willRun: function(run_info) { + willRun: function(runInfo) { }, addValue: function(value) { if (value instanceof pi.v.FailureValue) - this._run_ids_that_have_failures[value.run_info.run_id] = true; - this.all_values.push(value); + this.runIdsThatHaveFailures_[value.runInfo.runId] = true; + this.allValues.push(value); }, - didRun: function(run_info) { + didRun: function(runInfo) { }, didFinishAllRuns: function() { @@ -60,7 +60,7 @@ tr.exportTo('pi.r', function() { }, get failureValues() { - return this.all_values.filter(function(x) { + return this.allValues.filter(function(x) { return x instanceof pi.v.FailureValue; }); }, @@ -69,10 +69,10 @@ tr.exportTo('pi.r', function() { var failedRunInfos = []; var hasAddedRunInfo = {}; this.failureValues.forEach(function(v) { - if (hasAddedRunInfo[v.run_info.run_id]) + if (hasAddedRunInfo[v.runInfo.runId]) return; - hasAddedRunInfo[v.run_info.run_id] = true; - failedRunInfos.push(v.run_info); + hasAddedRunInfo[v.runInfo.runId] = true; + failedRunInfos.push(v.runInfo); }); return failedRunInfos; }, @@ -80,30 +80,30 @@ tr.exportTo('pi.r', function() { get allRunInfos() { var allRunInfos = []; var hasAddedRunInfo = {}; - this.all_values.forEach(function(v) { - if (hasAddedRunInfo[v.run_info.run_id]) + this.allValues.forEach(function(v) { + if (hasAddedRunInfo[v.runInfo.runId]) return; - hasAddedRunInfo[v.run_info.run_id] = true; - allRunInfos.push(v.run_info); + hasAddedRunInfo[v.runInfo.runId] = true; + allRunInfos.push(v.runInfo); }); return allRunInfos; }, - doesRunContainFailure: function(run_info) { - return this._run_ids_that_have_failures[run_info.run_id] === true; + doesRunContainFailure: function(runInfo) { + return this.runIdsThatHaveFailures_[runInfo.runId] === true; }, get allValuesFromFailureFreeRuns() { - return this.all_values.filter(function(x) { - if (this.doesRunContainFailure(x.run_info)) + return this.allValues.filter(function(x) { + if (this.doesRunContainFailure(x.runInfo)) return false; return true; }, this); }, - getValuesForRunInfo: function(run_info) { - return this.all_values.filter(function(value) { - return value.run_info === run_info; + getValuesForRunInfo: function(runInfo) { + return this.allValues.filter(function(value) { + return value.runInfo === runInfo; }); }, diff --git a/catapult/perf_insights/perf_insights/results/results_test.html b/catapult/perf_insights/perf_insights/results/results_test.html index a056b34d..e65975d1 100644 --- a/catapult/perf_insights/perf_insights/results/results_test.html +++ b/catapult/perf_insights/perf_insights/results/results_test.html @@ -13,13 +13,13 @@ found in the LICENSE file. tr.b.unittest.testSuite(function() { test('resultsAllSuccessful', function() { - var run_info1 = new pi.v.RunInfo('file1.json'); - var run_info2 = new pi.v.RunInfo('file2.json'); + var runInfo1 = new pi.v.RunInfo('file1.json'); + var runInfo2 = new pi.v.RunInfo('file2.json'); var results = new pi.r.Results(); - results.addValue(new pi.v.DictValue(run_info1, 'res', + results.addValue(new pi.v.DictValue(runInfo1, 'res', {my_key: 'my_value'})); - results.addValue(new pi.v.DictValue(run_info2, 'res', + results.addValue(new pi.v.DictValue(runInfo2, 'res', {my_key: 'my_value'})); assert.isFalse(results.hadFailures); assert.equal(results.allValuesFromFailureFreeRuns.length, 2); @@ -27,17 +27,17 @@ tr.b.unittest.testSuite(function() { }); test('oneFailed', function() { - var run_info1 = new pi.v.RunInfo('file1.json'); - var run_info2 = new pi.v.RunInfo('file2.json'); + var runInfo1 = new pi.v.RunInfo('file1.json'); + var runInfo2 = new pi.v.RunInfo('file2.json'); var results = new pi.r.Results(); - results.addValue(new pi.v.DictValue(run_info1, 'res', + results.addValue(new pi.v.DictValue(runInfo1, 'res', {my_key: 'my_value'})); - results.addValue(new pi.v.FailureValue(run_info2, 'res', + results.addValue(new pi.v.FailureValue(runInfo2, 'res', {description: 'blah', stack: 'stack'})); assert.isTrue(results.hadFailures); - assert.isTrue(results.doesRunContainFailure(run_info2)); + assert.isTrue(results.doesRunContainFailure(runInfo2)); assert.equal(results.allValuesFromFailureFreeRuns.length, 1); assert.equal(results.getValuesFromFailureFreeRunsNamed('res').length, 1); }); diff --git a/catapult/perf_insights/perf_insights/ui/caching_column.html b/catapult/perf_insights/perf_insights/ui/caching_column.html new file mode 100644 index 00000000..f90f6159 --- /dev/null +++ b/catapult/perf_insights/perf_insights/ui/caching_column.html @@ -0,0 +1,46 @@ +<!DOCTYPE html> +<!-- +Copyright (c) 2015 The Chromium Authors. All rights reserved. +Use of this source code is governed by a BSD-style license that can be +found in the LICENSE file. +--> + +<link rel="import" href="/tracing/base/base.html"> + +<script> +'use strict'; + +tr.exportTo('pi.ui', function() { + + // Creates a column which computes a value from all the data contained in a + // row and caches that value. This is useful for a grouping table where a + // grouping row can map to a lot of data. + // |title| is used as the caching key and therefore must be unique amongst + // the table columns. + // The |computeValueFn| property should be set to a function that receives an + // array of data and returns the value for the column. + // You can set other properties of the column, like |width|, |colSpan|, + // |cmp| etc. Do not set |value|, as the class provides it. + function CachingColumn(title, opt_computeValueFn) { + this.title = title; + this.computeValueFn = opt_computeValueFn || function(data) { + return data; + }; + }; + + CachingColumn.prototype = { + value: function(row) { + row.cachedValues_ = row.cachedValues_ || {}; + // Using hasOwnProperty to cache false-ish values like undefined. + if (!row.cachedValues_.hasOwnProperty(this.title)) + row.cachedValues_[this.title] = this.computeValueFn(row.data); + return row.cachedValues_[this.title]; + } + }; + + return { + CachingColumn: CachingColumn + }; +}); + +</script> diff --git a/catapult/perf_insights/perf_insights/ui/caching_column_test.html b/catapult/perf_insights/perf_insights/ui/caching_column_test.html new file mode 100644 index 00000000..b9726a27 --- /dev/null +++ b/catapult/perf_insights/perf_insights/ui/caching_column_test.html @@ -0,0 +1,54 @@ +<!DOCTYPE html> +<!-- +Copyright (c) 2015 The Chromium Authors. All rights reserved. +Use of this source code is governed by a BSD-style license that can be +found in the LICENSE file. +--> + +<link rel="import" href="/perf_insights/ui/caching_column.html"> +<link rel="import" href="/tracing/core/test_utils.html"> + +<script> +'use strict'; + +tr.b.unittest.testSuite(function() { + var CachingColumn = pi.ui.CachingColumn; + + test('default', function() { + var col = new CachingColumn('Title'); + var row = { + data: [] + }; + + assert.equal(col.title, 'Title'); + assert.deepEqual(col.value(row), []); + }); + + test('multipleColumns', function() { + var colA = new CachingColumn('ColA', function(data) { return data[0].a; }); + var colB = new CachingColumn('ColB', function(data) { return data[0].b; }); + var row = { + data: [{a: 'A', b: 'B'}] + }; + + assert.equal(colA.value(row), 'A'); + assert.equal(colB.value(row), 'B'); + }); + + test('cachesUndefined', function() { + var callCount = 0; + var col = new CachingColumn('Col', function(data) { + callCount++; + return undefined; + }); + var row = { + data: [] + }; + + assert.isUndefined(col.value(row)); + col.value(row); // Value should have been cached. + assert.equal(callCount, 1); + }); +}); +</script> + diff --git a/catapult/perf_insights/perf_insights/ui/generic_results_view.html b/catapult/perf_insights/perf_insights/ui/generic_results_view.html index 5f4d357a..9ba58522 100644 --- a/catapult/perf_insights/perf_insights/ui/generic_results_view.html +++ b/catapult/perf_insights/perf_insights/ui/generic_results_view.html @@ -50,18 +50,18 @@ found in the LICENSE file. results = new tr.r.Results(); var rows = []; - results.allRunInfos.forEach(function(run_info) { - var valuesForRun = results.getValuesForRunInfo(run_info); + results.allRunInfos.forEach(function(runInfo) { + var valuesForRun = results.getValuesForRunInfo(runInfo); - var urlSpan = tr.ui.b.createSpan({textContent: run_info.display_name}); + var urlSpan = tr.ui.b.createSpan({textContent: runInfo.displayName}); var row = { url: urlSpan }; - if (results.doesRunContainFailure(run_info)) { + if (results.doesRunContainFailure(runInfo)) { urlSpan.style.backgroundColor = 'red'; - var failureValuesForRun = results.all_values.filter(function(v) { - if (v.run_info !== run_info) + var failureValuesForRun = results.allValues.filter(function(v) { + if (v.runInfo !== runInfo) return false; if (v instanceof pi.v.FailureValue) return true; @@ -99,6 +99,7 @@ found in the LICENSE file. }); rows.push(row); }); + table.rowHighlightEnabled = true; table.importantColumNames = ['url']; table.items = rows; } diff --git a/catapult/perf_insights/perf_insights/ui/generic_results_view_test.html b/catapult/perf_insights/perf_insights/ui/generic_results_view_test.html index 3ad1b934..87f16b14 100644 --- a/catapult/perf_insights/perf_insights/ui/generic_results_view_test.html +++ b/catapult/perf_insights/perf_insights/ui/generic_results_view_test.html @@ -13,7 +13,7 @@ found in the LICENSE file. 'use strict'; tr.b.unittest.testSuite(function() { - var test_utils = tr.c.test_utils; + var test_utils = tr.c.TestUtils; test('basic', function() { var run1 = new pi.v.RunInfo('my_test.json'); var run2 = new pi.v.RunInfo('test2.json'); diff --git a/catapult/perf_insights/perf_insights/ui/grouping_table.html b/catapult/perf_insights/perf_insights/ui/grouping_table.html index 75af313b..5f58ab4d 100644 --- a/catapult/perf_insights/perf_insights/ui/grouping_table.html +++ b/catapult/perf_insights/perf_insights/ui/grouping_table.html @@ -25,7 +25,7 @@ found in the LICENSE file. tr.exportTo('pi.ui', function() { - function Row(title, data, groupingKeyFuncs) { + function Row(title, data, groupingKeyFuncs, compareFunc) { this.title = title; this.data_ = data; if (groupingKeyFuncs === undefined) @@ -93,7 +93,7 @@ tr.exportTo('pi.ui', function() { }, get tableColumns() { - return this.$.tableColumns; + return this.$.table.tableColumns; }, set tableColumns(tableColumns) { @@ -101,7 +101,7 @@ tr.exportTo('pi.ui', function() { }, get sortColumnIndex() { - return this.$.sortColumnIndex; + return this.$.table.sortColumnIndex; }, set sortColumnIndex(sortColumnIndex) { @@ -109,13 +109,53 @@ tr.exportTo('pi.ui', function() { }, get sortDescending() { - return this.$.sortDescending; + return this.$.table.sortDescending; }, set sortDescending(sortDescending) { this.$.table.sortDescending = sortDescending; }, + get rowHighlightEnabled() { + return this.$.table.rowHighlightEnabled; + }, + + set rowHighlightEnabled(rowHighlightEnabled) { + this.$.table.rowHighlightEnabled = rowHighlightEnabled; + }, + + get supportsSelection() { + return this.$.table.supportsSelection; + }, + + set supportsSelection(supportsSelection) { + this.$.table.supportsSelection = supportsSelection; + }, + + get cellSelectionMode() { + return this.$.table.cellSelectionMode; + }, + + set cellSelectionMode(cellSelectionMode) { + this.$.table.cellSelectionMode = cellSelectionMode; + }, + + get selectedColumnIndex() { + return this.$.table.selectedColumnIndex; + }, + + set selectedColumnIndex(selectedColumnIndex) { + this.$.table.selectedColumnIndex = selectedColumnIndex; + }, + + get selectedTableRow() { + return this.$.table.selectedTableRow; + }, + + set selectedTableRow(selectedTableRow) { + this.$.table.selectedTableRow = selectedTableRow; + }, + get groupBy() { return this.groupBy_; }, @@ -141,11 +181,11 @@ tr.exportTo('pi.ui', function() { var dataToGroup = this.dataToGroup_ || []; var superRow = new Row('', dataToGroup, groupBy); - this.$.table.tableRows = superRow.subRows; + this.$.table.tableRows = superRow.subRows || []; } }); return { - } + }; }); </script> diff --git a/catapult/perf_insights/perf_insights/ui/map_function_side_panel.html b/catapult/perf_insights/perf_insights/ui/map_function_side_panel.html index 51fa331f..bbe43f07 100644 --- a/catapult/perf_insights/perf_insights/ui/map_function_side_panel.html +++ b/catapult/perf_insights/perf_insights/ui/map_function_side_panel.html @@ -127,10 +127,10 @@ found in the LICENSE file. mapResultEl.appendChild(gov); var results = new pi.r.Results(); - var run_info = new pi.v.RunInfo(document.location.toString()); + var runInfo = new pi.v.RunInfo(document.location.toString()); try { - this.currentMapFunctionTypeInfo.constructor(results, run_info, + this.currentMapFunctionTypeInfo.constructor(results, runInfo, this.model_); } catch (ex) { ex = tr.b.normalizeException(ex); @@ -138,7 +138,7 @@ found in the LICENSE file. return; } - gov.object = results.all_values.map(function(v) { + gov.object = results.allValues.map(function(v) { return v.asDict(); }); }, diff --git a/catapult/perf_insights/perf_insights/ui/map_function_side_panel_test.html b/catapult/perf_insights/perf_insights/ui/map_function_side_panel_test.html index b8f6d056..8008fec5 100644 --- a/catapult/perf_insights/perf_insights/ui/map_function_side_panel_test.html +++ b/catapult/perf_insights/perf_insights/ui/map_function_side_panel_test.html @@ -8,7 +8,7 @@ found in the LICENSE file. <link rel="import" href="/perf_insights/value/value.html"> <link rel="import" href="/perf_insights/value/run_info.html"> <link rel="import" href="/perf_insights/results/results.html"> -<link rel="import" href="/perf_insights/wr/weather_report_map_function.html"> +<link rel="import" href="/perf_insights/mappers/weather_report_map_function.html"> <link rel="import" href="/tracing/core/test_utils.html"> <link rel="import" href="/tracing/extras/chrome/chrome_test_utils.html"> <link rel="import" href="/perf_insights/ui/map_function_side_panel.html"> @@ -19,9 +19,9 @@ found in the LICENSE file. 'use strict'; tr.b.unittest.testSuite(function() { - var test_utils = tr.c.test_utils; + var test_utils = tr.c.TestUtils; test('basicChrome', function() { - var m = tr.e.audits.newChromeModel(function(m) { + var m = tr.e.chrome.ChromeTestUtils.newChromeModel(function(m) { // Browser. m.browserMain.sliceGroup.pushSlice(test_utils.newSliceEx({ name: 'BrowserSlice', diff --git a/catapult/perf_insights/perf_insights/ui/perf_insights_full_config.html b/catapult/perf_insights/perf_insights/ui/perf_insights_full_config.html index a0ebf3a7..4b8c21b3 100644 --- a/catapult/perf_insights/perf_insights/ui/perf_insights_full_config.html +++ b/catapult/perf_insights/perf_insights/ui/perf_insights_full_config.html @@ -5,6 +5,4 @@ Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. --> <link rel="import" href="/perf_insights/perf_insights_full_config.html"> - -<!-- Optional but useful perf_insights UI bits are listed here. --> -<link rel="import" href="/perf_insights/ui/wr/weather_report.html"> +<link rel="import" href="/perf_insights/ui/reports/all_reports.html"> diff --git a/catapult/perf_insights/perf_insights/ui/pi_app_main.html b/catapult/perf_insights/perf_insights/ui/pi_app_main.html index a9cdd3f2..afdde7ac 100644 --- a/catapult/perf_insights/perf_insights/ui/pi_app_main.html +++ b/catapult/perf_insights/perf_insights/ui/pi_app_main.html @@ -7,7 +7,7 @@ found in the LICENSE file. <link rel="import" href="/tracing/base/xhr.html"> <link rel="import" href="/tracing/ui/base/dom_helpers.html"> <link rel="import" href="/tracing/ui/base/polymer_utils.html"> -<link rel="import" href="/perf_insights/ui/pi_report.html"> +<link rel="import" href="/perf_insights/ui/reports/pi_report.html"> <link rel="import" href="/perf_insights/map_function.html"> <link rel="import" href="/perf_insights/ui/generic_results_view.html"> @@ -111,7 +111,7 @@ tr.exportTo('pi.ui', function() { topLeftControls.appendChild(corpusQuerySelector); var piReportPolymerElementNames = tr.ui.b.getPolymerElementsThatSubclass( - 'pi-ui-pi-report'); + 'pi-ui-r-pi-report'); var piReportElementOptions = piReportPolymerElementNames.map( function(peTagName) { return { diff --git a/catapult/perf_insights/perf_insights/ui/pi_app_main_test.html b/catapult/perf_insights/perf_insights/ui/pi_app_main_test.html index d0a85f8d..e9cd869e 100644 --- a/catapult/perf_insights/perf_insights/ui/pi_app_main_test.html +++ b/catapult/perf_insights/perf_insights/ui/pi_app_main_test.html @@ -16,7 +16,7 @@ found in the LICENSE file. 'use strict'; tr.b.unittest.testSuite(function() { - var test_utils = tr.c.test_utils; + var test_utils = tr.c.TestUtils; test('instantiate', function() { var app = document.createElement('pi-ui-pi-app-main'); @@ -24,7 +24,7 @@ tr.b.unittest.testSuite(function() { var p = Promise.resolve(); p = p.then(function() { var dataString = tr.b.getSync( - '/perf_insights/ui/wr/wr_result_view_test_data.json'); + '/perf_insights/ui/reports/wr_result_view_test_data.json'); return dataString; }); return p; diff --git a/catapult/perf_insights/perf_insights/ui/reports/all_reports.html b/catapult/perf_insights/perf_insights/ui/reports/all_reports.html new file mode 100644 index 00000000..cfeeeb97 --- /dev/null +++ b/catapult/perf_insights/perf_insights/ui/reports/all_reports.html @@ -0,0 +1,11 @@ +<!DOCTYPE html> +<!-- +Copyright (c) 2013 The Chromium Authors. All rights reserved. +Use of this source code is governed by a BSD-style license that can be +found in the LICENSE file. +--> +<link rel="import" href="/perf_insights/ui/reports/weather_report.html"> +<link rel="import" href="/perf_insights/ui/reports/slice_cost_report.html"> +<link rel="import" href="/perf_insights/ui/reports/rail_score_report.html"> +<link rel="import" href="/perf_insights/ui/reports/coverage_report.html"> +<link rel="import" href="/perf_insights/ui/reports/task_info_report.html"> diff --git a/catapult/perf_insights/perf_insights/ui/reports/coverage_report.html b/catapult/perf_insights/perf_insights/ui/reports/coverage_report.html new file mode 100644 index 00000000..080c43ff --- /dev/null +++ b/catapult/perf_insights/perf_insights/ui/reports/coverage_report.html @@ -0,0 +1,223 @@ +<!DOCTYPE HTML> +<!-- +Copyright (c) 2015 The Chromium Authors. All rights reserved. +Use of this source code is governed by a BSD-style license that can be +found in the LICENSE file. +--> +<link rel="import" href="/tracing/ui/base/dom_helpers.html"> +<link rel="import" href="/tracing/ui/base/info_bar_group.html"> +<link rel="import" href="/tracing/ui/base/overlay.html"> +<link rel="import" href="/tracing/ui/base/table.html"> +<link rel="import" href="/tracing/ui/units/time_duration_span.html"> +<link rel="import" href="/perf_insights/results/results.html"> +<link rel="import" href="/perf_insights/ui/reports/pi_report.html"> +<link rel="import" href="/perf_insights/ui/generic_results_view.html"> +<link rel="import" href="/perf_insights/mappers/reduce.html"> +<link rel="import" href="/perf_insights/mappers/slice_cost.html"> + +<polymer-element name="pi-ui-wr-coverage-report" + extends="pi-ui-r-pi-report" + map-function-href="/perf_insights/wr/weather_report_map_function.html" + map-function-name="weatherReportMapFunction"> + <template> + <style> + :host { + display: flex; + flex-direction: column; + } + top-controls { + display: flex; + flex: 0 0 auto; + background-color: rgb(236, 236, 236); + border-bottom: 1px solid #8e8e8e; + padding: 4px; + } + #table { + flex: 1 1 auto; + } + </style> + <top-controls> + </top-controls> + <tr-ui-b-info-bar-group id="infobars"></tr-ui-b-info-bar-group> + <tr-ui-b-table id="table"></tr-ui-b-table> + </template> + <script> + 'use strict'; + + Polymer({ + created: function() { + this.mapResults_ = undefined; + }, + + get mapResults() { + return this.mapResults_; + }, + + set mapResults(mapResults) { + this.mapResults_ = mapResults; + this.updateContents_(); + }, + + updateContents_: function() { + var table = this.$.table; + + var results = this.mapResults_; + if (!results) + results = new tr.r.Results(); + + this.$.infobars.clearMessages(); + this.maybeAddFailuresInfoBarMessage_(results); + + var columns = this.createColumns_(); + table.tableColumns = columns; + table.sortColumnIndex = 2; + table.sortDescending = true; + + var allCoverageInfo = []; + results.allValuesFromFailureFreeRuns.forEach(function(result) { + if (result.name != 'wr') + return; + + // TODO(vmpstr): Why is there no irCoverage here? + if (!result.value.irCoverage) { + allCoverageInfo.push({ + title: result.runInfo.displayName + ' (no coverage)', + coverage: { + associatedEventsCount: 'N/A', + unassociatedEventsCount: 'N/A', + coveredEventsCountRatio: 'N/A', + associatedEventsCpuTimeMs: 'N/A', + unassociatedEventsCpuTimeMs: 'N/A', + coveredEventsCpuTimeRatio: 'N/A' + } + }); + return; + } + allCoverageInfo.push({ + title: result.runInfo.displayName, + coverage: result.value.irCoverage + }); + }); + + table.tableRows = allCoverageInfo; + table.rebuild(); + }, + + maybeAddFailuresInfoBarMessage_: function(results) { + if (!results.hadFailures) + return; + + function onTellMeMore() { + var dlg = new tr.ui.b.Overlay(); + dlg.dlg = 'Results summary'; + + var grv = document.createElement('pi-ui-generic-results-view'); + + grv.mapResults = results; + grv.style.minHeight = '500px'; + dlg.appendChild(grv); + dlg.visible = true; + } + + var numFailedRuns = results.failedRunInfos.length; + this.$.infobars.addMessage( + 'There were ' + numFailedRuns + ' traces that did not process.', + [ + { + buttonText: 'Tell me more...', + onClick: onTellMeMore + } + ]); + }, + + createColumns_: function() { + function formatMs(value) { + var floatValue = parseFloat(value); + if (isNaN(floatValue)) + return 'N/A'; + var span = document.createElement('tr-ui-u-time-duration-span'); + span.duration = floatValue; + return span; + } + + function formatPercent(value) { + var floatValue = parseFloat(value); + if (isNaN(floatValue)) + return 'N/A'; + return tr.b.u.Units.normalizedPercentage.format(floatValue); + } + + function formatCount(value) { + var intValue = parseInt(value); + if (isNaN(intValue)) + return 'N/A'; + return intValue.toLocaleString(); + } + + var columns = [ + { + title: 'Title', + value: function(row) { + return row.title; + }, + width: '400px', + cmp: function(a, b) { + return a.title.localeCompare(b.title); + } + }, + { + title: 'Total event count', + value: function(row) { + return formatCount(row.coverage.associatedEventsCount + + row.coverage.unassociatedEventsCount); + }, + cmp: function(a, b) { + var aTotal = a.coverage.associatedEventsCount + + a.coverage.unassociatedEventsCount; + var bTotal = b.coverage.associatedEventsCount + + b.coverage.unassociatedEventsCount; + return tr.b.compareNumericWithNaNs(aTotal, bTotal); + } + }, + { + title: 'Associated event percentage', + value: function(row) { + return formatPercent(row.coverage.coveredEventsCountRatio); + }, + cmp: function(a, b) { + return tr.b.compareNumericWithNaNs( + a.coverage.coveredEventsCountRatio, + b.coverage.coveredEventsCountRatio); + } + }, + { + title: 'Total event CPU time', + value: function(row) { + return formatMs(row.coverage.associatedEventsCpuTimeMs + + row.coverage.unassociatedEventsCpuTimeMs); + }, + cmp: function(a, b) { + var aTotal = a.coverage.associatedEventsCpuTimeMs + + a.coverage.unassociatedEventsCpuTimeMs; + var bTotal = b.coverage.associatedEventsCpuTimeMs + + b.coverage.unassociatedEventsCpuTimeMs; + return tr.b.compareNumericWithNaNs(aTotal, bTotal); + } + }, + { + title: 'Associated time percentage', + value: function(row) { + return formatPercent(row.coverage.coveredEventsCpuTimeRatio); + }, + cmp: function(a, b) { + return tr.b.compareNumericWithNaNs( + a.coverage.coveredEventsCpuTimeRatio, + b.coverage.coveredEventsCpuTimeRatio); + } + } + ]; + return columns; + } + }); + </script> +</polymer-element> diff --git a/catapult/perf_insights/perf_insights/ui/pi_report.html b/catapult/perf_insights/perf_insights/ui/reports/pi_report.html index 02b394bf..1b4de261 100644 --- a/catapult/perf_insights/perf_insights/ui/pi_report.html +++ b/catapult/perf_insights/perf_insights/ui/reports/pi_report.html @@ -8,10 +8,10 @@ found in the LICENSE file. <link rel="import" href="/tracing/ui/base/table.html"> <link rel="import" href="/tracing/ui/units/time_duration_span.html"> <link rel="import" href="/perf_insights/results/results.html"> -<link rel="import" href="/perf_insights/wr/reduce.html"> -<link rel="import" href="/perf_insights/wr/slice_cost.html"> +<link rel="import" href="/perf_insights/mappers/reduce.html"> +<link rel="import" href="/perf_insights/mappers/slice_cost.html"> -<polymer-element name="pi-ui-pi-report"> +<polymer-element name="pi-ui-r-pi-report"> <script> 'use strict'; diff --git a/catapult/perf_insights/perf_insights/ui/reports/rail_score_report.html b/catapult/perf_insights/perf_insights/ui/reports/rail_score_report.html new file mode 100644 index 00000000..22d97db1 --- /dev/null +++ b/catapult/perf_insights/perf_insights/ui/reports/rail_score_report.html @@ -0,0 +1,80 @@ +<!DOCTYPE HTML> +<!-- +Copyright (c) 2015 The Chromium Authors. All rights reserved. +Use of this source code is governed by a BSD-style license that can be +found in the LICENSE file. +--> +<link rel="import" href="/tracing/base/units/units.html"> +<link rel="import" href="/tracing/base/units/histogram.html"> +<link rel="import" href="/tracing/ui/base/dom_helpers.html"> +<link rel="import" href="/tracing/ui/base/info_bar_group.html"> +<link rel="import" href="/tracing/ui/base/overlay.html"> +<link rel="import" href="/tracing/ui/units/generic_table_view.html"> +<link rel="import" href="/tracing/ui/units/histogram_span.html"> +<link rel="import" href="/perf_insights/results/results.html"> +<link rel="import" href="/perf_insights/ui/reports/pi_report.html"> +<link rel="import" href="/perf_insights/ui/grouping_table.html"> +<link rel="import" href="/perf_insights/ui/generic_results_view.html"> +<link rel="import" href="/perf_insights/mappers/slice_cost.html"> + +<polymer-element name="pi-ui-r-rail-score-report" + extends="pi-ui-r-pi-report" + map-function-href="/perf_insights/mappers/weather_report_map_function.html" + map-function-name="weatherReportMapFunction"> + <template> + <style> + :host { + display: flex; + flex-direction: column; + } + #histogram { + flex: 1 1 auto; + max-width: 400px; + } + </style> + <tr-ui-u-histogram-span id="histogram"></tr-ui-u-histogram-span> + </template> + <script> + 'use strict'; + + Polymer({ + created: function() { + this.mapResults_ = undefined; + }, + + ready: function() { + }, + + get mapResults() { + return this.mapResults_; + }, + + set mapResults(mapResults) { + this.mapResults_ = mapResults; + this.updateContents_(); + }, + + updateContents_: function() { + var table = this.$.table; + + var results = this.mapResults_; + if (!results) + results = new tr.r.Results(); + + var overallScoreHistogram = tr.b.u.Histogram.createLinear( + tr.b.u.Units.normalizedPercentage, + tr.b.Range.fromExplicitRange(0, 1), + 10); + results.allValuesFromFailureFreeRuns.map(function(v) { + if (!v.value.railScore) + return; + var railScore = v.value.railScore; + overallScoreHistogram.add(railScore.overallScore, + v.runInfo.url); + }); + + this.$.histogram.histogram = overallScoreHistogram; + } + }); + </script> +</polymer-element> diff --git a/catapult/perf_insights/perf_insights/ui/wr/weather_report.html b/catapult/perf_insights/perf_insights/ui/reports/slice_cost_report.html index 0bdbdf58..4cad9b44 100644 --- a/catapult/perf_insights/perf_insights/ui/wr/weather_report.html +++ b/catapult/perf_insights/perf_insights/ui/reports/slice_cost_report.html @@ -9,15 +9,14 @@ found in the LICENSE file. <link rel="import" href="/tracing/ui/base/overlay.html"> <link rel="import" href="/tracing/ui/units/time_duration_span.html"> <link rel="import" href="/perf_insights/results/results.html"> -<link rel="import" href="/perf_insights/ui/pi_report.html"> +<link rel="import" href="/perf_insights/ui/reports/pi_report.html"> <link rel="import" href="/perf_insights/ui/grouping_table.html"> <link rel="import" href="/perf_insights/ui/generic_results_view.html"> -<link rel="import" href="/perf_insights/wr/reduce.html"> -<link rel="import" href="/perf_insights/wr/slice_cost.html"> +<link rel="import" href="/perf_insights/mappers/slice_cost.html"> -<polymer-element name="pi-ui-wr-weather-report" - extends="pi-ui-pi-report" - map-function-href="/perf_insights/wr/weather_report_map_function.html" +<polymer-element name="pi-ui-r-slice-cost-report" + extends="pi-ui-r-pi-report" + map-function-href="/perf_insights/mappers/weather_report_map_function.html" map-function-name="weatherReportMapFunction"> <template> <style> @@ -38,7 +37,6 @@ found in the LICENSE file. </style> <top-controls> </top-controls> - <tr-ui-b-info-bar-group id="infobars"></tr-ui-b-info-bar-group> <pi-ui-grouping-table id="table"></pi-ui-grouping-table> </template> <script> @@ -54,21 +52,21 @@ found in the LICENSE file. this.groupByThreadName_ = tr.ui.b.createCheckBox( undefined, undefined, - 'pi.ui.wr.weather_report.gropuByThreadName', true, + 'pi.ui.wr.weather_report.groupByThreadName', true, 'Group by thread name', this.updateContents_.bind(this)); topControls.appendChild(this.groupByThreadName_); this.groupByRAILTypeName_ = tr.ui.b.createCheckBox( undefined, undefined, - 'pi.ui.wr.weather_report.gropuByRAILTypeName', true, + 'pi.ui.wr.weather_report.groupByRAILTypeName', true, 'Group by RAIL Stage', this.updateContents_.bind(this)); topControls.appendChild(this.groupByRAILTypeName_); this.groupByDomain_ = tr.ui.b.createCheckBox( undefined, undefined, - 'pi.ui.wr.weather_report.gropuByDomain', true, + 'pi.ui.wr.weather_report.groupByDomain', true, 'Group by Domain', this.updateContents_.bind(this)); topControls.appendChild(this.groupByDomain_); @@ -90,9 +88,6 @@ found in the LICENSE file. if (!results) results = new tr.r.Results(); - this.$.infobars.clearMessages(); - this.maybeAddFailuresInfoBarMessage_(results); - var columns = this.createColumns_(); table.tableColumns = columns; table.sortColumnIndex = 2; @@ -139,38 +134,12 @@ found in the LICENSE file. }); } + table.supportsSelection = true; table.groupBy = groupBy; table.dataToGroup = allSliceCosts; table.rebuild(); }, - maybeAddFailuresInfoBarMessage_: function(results) { - if (!results.hadFailures) - return; - - function onTellMeMore() { - var dlg = new tr.ui.b.Overlay(); - dlg.dlg = 'Results summary'; - - var grv = document.createElement('pi-ui-generic-results-view'); - - grv.mapResults = results; - grv.style.minHeight = '500px'; - dlg.appendChild(grv); - dlg.visible = true; - } - - var numFailedRuns = results.failedRunInfos.length; - this.$.infobars.addMessage( - 'There were ' + numFailedRuns + ' traces that did not process.', - [ - { - buttonText: 'Tell me more...', - onClick: onTellMeMore - } - ]); - }, - createColumns_: function() { function compareTimestamps(x, y) { @@ -189,8 +158,8 @@ found in the LICENSE file. row.data, function(sliceCostInfo) { return sliceCostInfo.selfTime; - }), - } + }) + }; row.stats_ = stats; } return row.stats_; diff --git a/catapult/perf_insights/perf_insights/ui/reports/task_info_report.html b/catapult/perf_insights/perf_insights/ui/reports/task_info_report.html new file mode 100644 index 00000000..fafd2323 --- /dev/null +++ b/catapult/perf_insights/perf_insights/ui/reports/task_info_report.html @@ -0,0 +1,235 @@ +<!DOCTYPE HTML> +<!-- +Copyright (c) 2015 The Chromium Authors. All rights reserved. +Use of this source code is governed by a BSD-style license that can be +found in the LICENSE file. +--> +<link rel="import" href="/tracing/base/iteration_helpers.html"> +<link rel="import" href="/tracing/base/units/histogram.html"> +<link rel="import" href="/tracing/ui/base/dom_helpers.html"> +<link rel="import" href="/tracing/ui/base/info_bar_group.html"> +<link rel="import" href="/tracing/ui/base/overlay.html"> +<link rel="import" href="/tracing/ui/base/table.html"> +<link rel="import" href="/tracing/ui/units/histogram_span.html"> +<link rel="import" href="/tracing/ui/units/time_duration_span.html"> +<link rel="import" href="/perf_insights/results/results.html"> +<link rel="import" href="/perf_insights/ui/reports/pi_report.html"> +<link rel="import" href="/perf_insights/ui/generic_results_view.html"> +<link rel="import" href="/perf_insights/ui/caching_column.html"> +<link rel="import" href="/perf_insights/ui/grouping_table.html"> +<link rel="import" href="/perf_insights/mappers/reduce.html"> +<link rel="import" href="/perf_insights/mappers/slice_cost.html"> + +<polymer-element name="pi-ui-r-task-info-report" + extends="pi-ui-r-pi-report" + map-function-href="/perf_insights/mappers/task_info_map_function.html" + map-function-name="taskInfoMapFunction"> + <template> + <style> + :host { + display: flex; + flex-direction: column; + } + top-controls { + display: flex; + flex: 0 0 auto; + background-color: rgb(236, 236, 236); + border-bottom: 1px solid #8e8e8e; + padding: 4px; + } + #table { + flex: 1 1 auto; + } + </style> + <tr-ui-b-info-bar-group id="infobars"></tr-ui-b-info-bar-group> + <pi-ui-grouping-table id="table"></pi-ui-grouping-table> + <h1>Histogram</h1> + <tr-ui-u-histogram-span id="histogram"></tr-ui-u-histogram-span> + </template> + <script> + 'use strict'; + + Polymer({ + created: function() { + this.mapResults_ = undefined; + }, + + ready: function() { + this.$.table.addEventListener('selection-changed', + function(tableEvent) { + tableEvent.stopPropagation(); + this.setHistogramBasedOnSelection_(); + }.bind(this)); + }, + + get mapResults() { + return this.mapResults_; + }, + + set mapResults(mapResults) { + this.mapResults_ = mapResults; + this.updateContents_(); + }, + + updateContents_: function() { + var table = this.$.table; + + var results = this.mapResults_; + if (!results) + results = new tr.r.Results(); + + this.$.infobars.clearMessages(); + this.maybeAddFailuresInfoBarMessage_(results); + + var columns = this.createColumns_(); + table.tableColumns = columns; + table.sortColumnIndex = 3; + table.sortDescending = true; + + var rows = []; + results.allValuesFromFailureFreeRuns.forEach(function(result) { + for (var process in result.value) { + for (var thread in result.value[process]) { + rows.push({ + process: process, + thread: thread, + type: result.name, + histogram: + tr.b.u.Histogram.fromDict(result.value[process][thread]) + }); + } + } + }); + + var groupBy = []; + groupBy.push(function(datum) { + return datum.process; + }); + groupBy.push(function(datum) { + return datum.thread; + }); + table.supportsSelection = true; + table.groupBy = groupBy; + table.groupBy = groupBy; + table.dataToGroup = rows; + table.supportsSelection = true; + table.cellSelectionMode = true; + table.rowHighlightEnabled = true; + table.rebuild(); + }, + + maybeAddFailuresInfoBarMessage_: function(results) { + if (!results.hadFailures) + return; + + function onTellMeMore() { + var dlg = new tr.ui.b.Overlay(); + dlg.dlg = 'Results summary'; + + var grv = document.createElement('pi-ui-generic-results-view'); + + grv.mapResults = results; + grv.style.minHeight = '500px'; + dlg.appendChild(grv); + dlg.visible = true; + } + + var numFailedRuns = results.failedRunInfos.length; + this.$.infobars.addMessage( + 'There were ' + numFailedRuns + ' traces that did not process.', + [ + { + buttonText: 'Tell me more...', + onClick: onTellMeMore + } + ]); + }, + + createColumns_: function() { + + function getStatsForRow(row) { + if (row.stats_ === undefined) { + row.stats_ = {}; + COLUMN_INFOS.forEach(function(info) { + info.statSetter(row.stats_, + averageFromHistograms(info.type, row.data)); + }); + } + return row.stats_; + } + + var columns = [{ + title: 'Title', + value: function(row) { + return row.title; + }, + cmp: function(a, b) { + var sA = a.title; + var sB = b.title; + if (sA < sB) + return -1; + if (sA > sB) + return 1; + return 0; + }, + width: '500px' + }, + this.createCachingColumn_('Avg. Time in queue', 'time_spent_in_queue'), + this.createCachingColumn_('Avg. Self time', + 'time_spent_in_top_level_task'), + this.createCachingColumn_('Avg. CPU time', + 'cpu_time_spent_in_top_level_task') + ]; + + return columns; + }, + + createCachingColumn_(title, type) { + + function averageFromHistograms(data) { + var runningSum = 0; + var numValues = 0; + data.forEach(function(datum) { + if (datum.type !== type) + return; + runningSum += datum.histogram.runningSum; + numValues += datum.histogram.numValues; + }); + var average = 0; + if (numValues !== 0) + average = runningSum / numValues; + return tr.ui.units.createTimeDurationSpan(average); + } + + var column = new pi.ui.CachingColumn(title, averageFromHistograms); + column.type = type; + column.cmp = function(row0, row1) { + return column.value(row0).duration - column.value(row1).duration; + }; + return column; + }, + + setHistogramBasedOnSelection_: function() { + var table = this.$.table; + var selectedColumn = table.selectedColumnIndex; + // Don't display a histogram if the user selects the title. + if (selectedColumn === 0) + return; + + var desiredType = table.tableColumns[selectedColumn].type; + var histogram = undefined; + table.selectedTableRow.data.forEach(function(datum) { + if (datum.type !== desiredType) + return; + if (!histogram) + histogram = datum.histogram.clone(); + else + histogram.addHistogram(datum.histogram); + }); + + this.$.histogram.histogram = histogram; + } + + }); + </script> +</polymer-element> diff --git a/catapult/perf_insights/perf_insights/ui/reports/task_info_report_test.html b/catapult/perf_insights/perf_insights/ui/reports/task_info_report_test.html new file mode 100644 index 00000000..9fdec4dc --- /dev/null +++ b/catapult/perf_insights/perf_insights/ui/reports/task_info_report_test.html @@ -0,0 +1,34 @@ +<!DOCTYPE html> +<!-- +Copyright (c) 2013 The Chromium Authors. All rights reserved. +Use of this source code is governed by a BSD-style license that can be +found in the LICENSE file. +--> + +<link rel="import" href="/perf_insights/value/value.html"> +<link rel="import" href="/perf_insights/value/run_info.html"> +<link rel="import" href="/perf_insights/results/results.html"> +<link rel="import" href="/perf_insights/ui/reports/task_info_report.html"> + +<link rel="import" href="/perf_insights/perf_insights_full_config.html"> +<link rel="import" href="/tracing/base/xhr.html"> + +<script> +'use strict'; + +tr.b.unittest.testSuite(function() { + var test_utils = tr.c.TestUtils; + test('savedData', function() { + // TODO(nduca): #1219, stop reading an actual wr file as our test data and + // use synthetic data. + var dataString = tr.b.getSync( + '/perf_insights/ui/reports/task_info_result_view_test_data.json'); + var results = pi.r.Results.fromDict(JSON.parse(dataString)); + + var view = document.createElement('pi-ui-r-task-info-report'); + view.mapResults = results; + this.addHTMLOutput(view); + }); +}); +</script> + diff --git a/catapult/perf_insights/perf_insights/ui/reports/task_info_result_view_test_data.json b/catapult/perf_insights/perf_insights/ui/reports/task_info_result_view_test_data.json new file mode 100644 index 00000000..844fa0ae --- /dev/null +++ b/catapult/perf_insights/perf_insights/ui/reports/task_info_result_view_test_data.json @@ -0,0 +1,15821 @@ +{ + "runs": { + "4593ca6b-75fb-4823-a7c9-2414d8e045c3": { + "url": "file:///work/trace-viewer/catapult/perf_insights/test_data/googlemaps_ipc_newbinding.html", + "display_name": "googlemaps_ipc_newbinding.html", + "metadata": { + "tags": [] + }, + "type": "perf_insights.value.RunInfo", + "run_id": "4593ca6b-75fb-4823-a7c9-2414d8e045c3" + } + }, + "values": [ + { + "important": false, + "type": "dict", + "name": "time_spent_in_queue", + "value": { + "Renderer": { + "Chrome_ChildIOThread": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 346.93500077724457, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 1387, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 11, + "max": 10, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "HTMLParserThread": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 3.937000036239624, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 9, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "CrRendererMain": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 41, + "max": 1.7976931348623157e+308, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 250 + }, + "runningSum": 59472.10500061512, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 1768, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 266, + "max": 10, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 5 + }, + { + "count": 268, + "max": 15, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 10 + }, + { + "count": 175, + "max": 20, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 15 + }, + { + "count": 110, + "max": 25, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 20 + }, + { + "count": 67, + "max": 30, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 25 + }, + { + "count": 27, + "max": 35, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 30 + }, + { + "count": 12, + "max": 40, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 35 + }, + { + "count": 30, + "max": 45, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 40 + }, + { + "count": 14, + "max": 50, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 45 + }, + { + "count": 31, + "max": 55, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 50 + }, + { + "count": 9, + "max": 60, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 55 + }, + { + "count": 7, + "max": 65, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null + ], + "min": 60 + }, + { + "count": 1, + "max": 70, + "sourceInfos": [ + null + ], + "min": 65 + }, + { + "count": 4, + "max": 75, + "sourceInfos": [ + null, + null, + null, + null + ], + "min": 70 + }, + { + "count": 4, + "max": 80, + "sourceInfos": [ + null, + null, + null, + null + ], + "min": 75 + }, + { + "count": 6, + "max": 85, + "sourceInfos": [ + null, + null, + null, + null, + null, + null + ], + "min": 80 + }, + { + "count": 8, + "max": 90, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 85 + }, + { + "count": 6, + "max": 95, + "sourceInfos": [ + null, + null, + null, + null, + null, + null + ], + "min": 90 + }, + { + "count": 12, + "max": 100, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 95 + }, + { + "count": 21, + "max": 105, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 100 + }, + { + "count": 9, + "max": 110, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 105 + }, + { + "count": 6, + "max": 115, + "sourceInfos": [ + null, + null, + null, + null, + null, + null + ], + "min": 110 + }, + { + "count": 8, + "max": 120, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 115 + }, + { + "count": 2, + "max": 125, + "sourceInfos": [ + null, + null + ], + "min": 120 + }, + { + "count": 6, + "max": 130, + "sourceInfos": [ + null, + null, + null, + null, + null, + null + ], + "min": 125 + }, + { + "count": 4, + "max": 135, + "sourceInfos": [ + null, + null, + null, + null + ], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 2, + "max": 145, + "sourceInfos": [ + null, + null + ], + "min": 140 + }, + { + "count": 1, + "max": 150, + "sourceInfos": [ + null + ], + "min": 145 + }, + { + "count": 7, + "max": 155, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null + ], + "min": 150 + }, + { + "count": 4, + "max": 160, + "sourceInfos": [ + null, + null, + null, + null + ], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 1, + "max": 170, + "sourceInfos": [ + null + ], + "min": 165 + }, + { + "count": 3, + "max": 175, + "sourceInfos": [ + null, + null, + null + ], + "min": 170 + }, + { + "count": 2, + "max": 180, + "sourceInfos": [ + null, + null + ], + "min": 175 + }, + { + "count": 2, + "max": 185, + "sourceInfos": [ + null, + null + ], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 2, + "max": 200, + "sourceInfos": [ + null, + null + ], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 1, + "max": 220, + "sourceInfos": [ + null + ], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 1, + "max": 230, + "sourceInfos": [ + null + ], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "ScriptStreamerThread": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 29.5450000166893, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 4, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 1, + "max": 15, + "sourceInfos": [ + null + ], + "min": 10 + }, + { + "count": 1, + "max": 20, + "sourceInfos": [ + null + ], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "Compositor": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 5226.530001997948, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 1862, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 131, + "max": 10, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 5 + }, + { + "count": 154, + "max": 15, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 10 + }, + { + "count": 54, + "max": 20, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 15 + }, + { + "count": 6, + "max": 25, + "sourceInfos": [ + null, + null, + null, + null, + null, + null + ], + "min": 20 + }, + { + "count": 3, + "max": 30, + "sourceInfos": [ + null, + null, + null + ], + "min": 25 + }, + { + "count": 1, + "max": 35, + "sourceInfos": [ + null + ], + "min": 30 + }, + { + "count": 1, + "max": 40, + "sourceInfos": [ + null + ], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + } + }, + "GPU Process": { + "Chrome_ChildIOThread": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 65.07199990749359, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 459, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "CrGpuMain": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 1538.237999022007, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 707, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 65, + "max": 10, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 5 + }, + { + "count": 20, + "max": 15, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 10 + }, + { + "count": 6, + "max": 20, + "sourceInfos": [ + null, + null, + null, + null, + null, + null + ], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 7, + "max": 45, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null + ], + "min": 40 + }, + { + "count": 1, + "max": 50, + "sourceInfos": [ + null + ], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + } + }, + "Browser": { + "CrBrowserMain": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 3, + "max": 1.7976931348623157e+308, + "sourceInfos": [ + null, + null, + null + ], + "min": 250 + }, + "runningSum": 4609.991001069546, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 886, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 56, + "max": 10, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 5 + }, + { + "count": 20, + "max": 15, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 10 + }, + { + "count": 5, + "max": 20, + "sourceInfos": [ + null, + null, + null, + null, + null + ], + "min": 15 + }, + { + "count": 1, + "max": 25, + "sourceInfos": [ + null + ], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 1, + "max": 35, + "sourceInfos": [ + null + ], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 2, + "max": 105, + "sourceInfos": [ + null, + null + ], + "min": 100 + }, + { + "count": 1, + "max": 110, + "sourceInfos": [ + null + ], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 1, + "max": 185, + "sourceInfos": [ + null + ], + "min": 180 + }, + { + "count": 1, + "max": 190, + "sourceInfos": [ + null + ], + "min": 185 + }, + { + "count": 1, + "max": 195, + "sourceInfos": [ + null + ], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "Chrome_FileThread": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 0.15200001001358032, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 1, + "max": 5, + "sourceInfos": [ + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "BrowserWatchdog": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 0.27500003576278687, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 1, + "max": 5, + "sourceInfos": [ + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "Chrome_IOThread": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 2790.7339997291565, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 1482, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 81, + "max": 10, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 5 + }, + { + "count": 20, + "max": 15, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 10 + }, + { + "count": 9, + "max": 20, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 15 + }, + { + "count": 22, + "max": 25, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 20 + }, + { + "count": 8, + "max": 30, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 25 + }, + { + "count": 5, + "max": 35, + "sourceInfos": [ + null, + null, + null, + null, + null + ], + "min": 30 + }, + { + "count": 3, + "max": 40, + "sourceInfos": [ + null, + null, + null + ], + "min": 35 + }, + { + "count": 2, + "max": 45, + "sourceInfos": [ + null, + null + ], + "min": 40 + }, + { + "count": 2, + "max": 50, + "sourceInfos": [ + null, + null + ], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 1, + "max": 70, + "sourceInfos": [ + null + ], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "BrowserBlockingWorker": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 9.61300003528595, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 16, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "Chrome_HistoryThread": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 7.388000011444092, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 15, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "SimpleCacheWorker": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 11.991999685764313, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 110, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "Chrome_FileUserBlockingThread": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 0.21399998664855957, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 3, + "max": 5, + "sourceInfos": [ + null, + null, + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + } + } + }, + "run_id": "4593ca6b-75fb-4823-a7c9-2414d8e045c3" + }, + { + "important": false, + "type": "dict", + "name": "time_spent_in_top_level_task", + "value": { + "Renderer": { + "Chrome_ChildIOThread": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 129.13300000000186, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 1392, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 1, + "max": 10, + "sourceInfos": [ + null + ], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "HTMLParserThread": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 0.366, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 6, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "ScriptStreamerThread": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 0.3659999999999981, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 5, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "Compositor": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 91.04900000000123, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 2113, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "CrRendererMain": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 155.82399982834139, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 1821, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 2, + "max": 10, + "sourceInfos": [ + null, + null + ], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + } + }, + "GPU Process": { + "Chrome_ChildIOThread": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 36.75999999999995, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 438, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "CrGpuMain": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 64.20599999999996, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 782, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + } + }, + "Browser": { + "CrBrowserMain": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 73.7190000000003, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 932, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 1, + "max": 10, + "sourceInfos": [ + null + ], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "BrowserWatchdog": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 0, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 1, + "max": 5, + "sourceInfos": [ + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "Chrome_FileThread": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 1.0370000004768372, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 1, + "max": 5, + "sourceInfos": [ + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "BrowserBlockingWorker": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 7.4159999999999995, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 16, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "Chrome_IOThread": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 380.5269999999984, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 1606, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 5, + "max": 10, + "sourceInfos": [ + null, + null, + null, + null, + null + ], + "min": 5 + }, + { + "count": 1, + "max": 15, + "sourceInfos": [ + null + ], + "min": 10 + }, + { + "count": 1, + "max": 20, + "sourceInfos": [ + null + ], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "Chrome_HistoryThread": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 7.295, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 15, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "SimpleCacheWorker": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 121.31800000000011, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 104, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 4, + "max": 10, + "sourceInfos": [ + null, + null, + null, + null + ], + "min": 5 + }, + { + "count": 2, + "max": 15, + "sourceInfos": [ + null, + null + ], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "Chrome_FileUserBlockingThread": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 0.946, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 3, + "max": 5, + "sourceInfos": [ + null, + null, + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + } + } + }, + "run_id": "4593ca6b-75fb-4823-a7c9-2414d8e045c3" + }, + { + "important": false, + "type": "dict", + "name": "cpu_time_spent_in_top_level_task", + "value": { + "Renderer": { + "Chrome_ChildIOThread": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 102.63100000000148, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 1393, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "HTMLParserThread": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 0.33599999999999997, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 6, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "ScriptStreamerThread": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 0.3669999999999993, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 5, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "Compositor": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 59.800999999999945, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 2113, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "CrRendererMain": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 106.63600000000078, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 1, + "max": 0, + "sourceInfos": [ + null + ], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 1822, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + } + }, + "GPU Process": { + "Chrome_ChildIOThread": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 32.56099999999997, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 438, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "CrGpuMain": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 51.278999999999925, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 782, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + } + }, + "Browser": { + "CrBrowserMain": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 53.17599999999998, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 933, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "BrowserWatchdog": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 0, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 1, + "max": 5, + "sourceInfos": [ + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "Chrome_FileThread": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 0, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 1, + "max": 5, + "sourceInfos": [ + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "BrowserBlockingWorker": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 4.732, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 16, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "Chrome_IOThread": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 311.174, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 1607, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 5, + "max": 10, + "sourceInfos": [ + null, + null, + null, + null, + null + ], + "min": 5 + }, + { + "count": 1, + "max": 15, + "sourceInfos": [ + null + ], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "Chrome_HistoryThread": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 6.501, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 15, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "SimpleCacheWorker": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 46.78199999999995, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 110, + "max": 5, + "sourceInfos": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + }, + "Chrome_FileUserBlockingThread": { + "nanSourceInfos": [], + "min": 0, + "max": 250, + "overflowBin": { + "count": 0, + "max": 1.7976931348623157e+308, + "sourceInfos": [], + "min": 250 + }, + "runningSum": 0.917, + "centralBinWidth": 5, + "numNans": 0, + "underflowBin": { + "count": 0, + "max": 0, + "sourceInfos": [], + "min": -1.7976931348623157e+308 + }, + "centralBins": [ + { + "count": 3, + "max": 5, + "sourceInfos": [ + null, + null, + null + ], + "min": 0 + }, + { + "count": 0, + "max": 10, + "sourceInfos": [], + "min": 5 + }, + { + "count": 0, + "max": 15, + "sourceInfos": [], + "min": 10 + }, + { + "count": 0, + "max": 20, + "sourceInfos": [], + "min": 15 + }, + { + "count": 0, + "max": 25, + "sourceInfos": [], + "min": 20 + }, + { + "count": 0, + "max": 30, + "sourceInfos": [], + "min": 25 + }, + { + "count": 0, + "max": 35, + "sourceInfos": [], + "min": 30 + }, + { + "count": 0, + "max": 40, + "sourceInfos": [], + "min": 35 + }, + { + "count": 0, + "max": 45, + "sourceInfos": [], + "min": 40 + }, + { + "count": 0, + "max": 50, + "sourceInfos": [], + "min": 45 + }, + { + "count": 0, + "max": 55, + "sourceInfos": [], + "min": 50 + }, + { + "count": 0, + "max": 60, + "sourceInfos": [], + "min": 55 + }, + { + "count": 0, + "max": 65, + "sourceInfos": [], + "min": 60 + }, + { + "count": 0, + "max": 70, + "sourceInfos": [], + "min": 65 + }, + { + "count": 0, + "max": 75, + "sourceInfos": [], + "min": 70 + }, + { + "count": 0, + "max": 80, + "sourceInfos": [], + "min": 75 + }, + { + "count": 0, + "max": 85, + "sourceInfos": [], + "min": 80 + }, + { + "count": 0, + "max": 90, + "sourceInfos": [], + "min": 85 + }, + { + "count": 0, + "max": 95, + "sourceInfos": [], + "min": 90 + }, + { + "count": 0, + "max": 100, + "sourceInfos": [], + "min": 95 + }, + { + "count": 0, + "max": 105, + "sourceInfos": [], + "min": 100 + }, + { + "count": 0, + "max": 110, + "sourceInfos": [], + "min": 105 + }, + { + "count": 0, + "max": 115, + "sourceInfos": [], + "min": 110 + }, + { + "count": 0, + "max": 120, + "sourceInfos": [], + "min": 115 + }, + { + "count": 0, + "max": 125, + "sourceInfos": [], + "min": 120 + }, + { + "count": 0, + "max": 130, + "sourceInfos": [], + "min": 125 + }, + { + "count": 0, + "max": 135, + "sourceInfos": [], + "min": 130 + }, + { + "count": 0, + "max": 140, + "sourceInfos": [], + "min": 135 + }, + { + "count": 0, + "max": 145, + "sourceInfos": [], + "min": 140 + }, + { + "count": 0, + "max": 150, + "sourceInfos": [], + "min": 145 + }, + { + "count": 0, + "max": 155, + "sourceInfos": [], + "min": 150 + }, + { + "count": 0, + "max": 160, + "sourceInfos": [], + "min": 155 + }, + { + "count": 0, + "max": 165, + "sourceInfos": [], + "min": 160 + }, + { + "count": 0, + "max": 170, + "sourceInfos": [], + "min": 165 + }, + { + "count": 0, + "max": 175, + "sourceInfos": [], + "min": 170 + }, + { + "count": 0, + "max": 180, + "sourceInfos": [], + "min": 175 + }, + { + "count": 0, + "max": 185, + "sourceInfos": [], + "min": 180 + }, + { + "count": 0, + "max": 190, + "sourceInfos": [], + "min": 185 + }, + { + "count": 0, + "max": 195, + "sourceInfos": [], + "min": 190 + }, + { + "count": 0, + "max": 200, + "sourceInfos": [], + "min": 195 + }, + { + "count": 0, + "max": 205, + "sourceInfos": [], + "min": 200 + }, + { + "count": 0, + "max": 210, + "sourceInfos": [], + "min": 205 + }, + { + "count": 0, + "max": 215, + "sourceInfos": [], + "min": 210 + }, + { + "count": 0, + "max": 220, + "sourceInfos": [], + "min": 215 + }, + { + "count": 0, + "max": 225, + "sourceInfos": [], + "min": 220 + }, + { + "count": 0, + "max": 230, + "sourceInfos": [], + "min": 225 + }, + { + "count": 0, + "max": 235, + "sourceInfos": [], + "min": 230 + }, + { + "count": 0, + "max": 240, + "sourceInfos": [], + "min": 235 + }, + { + "count": 0, + "max": 245, + "sourceInfos": [], + "min": 240 + }, + { + "count": 0, + "max": 250, + "sourceInfos": [], + "min": 245 + } + ], + "unit": "ms" + } + } + }, + "run_id": "4593ca6b-75fb-4823-a7c9-2414d8e045c3" + } + ] +} diff --git a/catapult/perf_insights/perf_insights/ui/reports/weather_report.html b/catapult/perf_insights/perf_insights/ui/reports/weather_report.html new file mode 100644 index 00000000..ebd7a6b4 --- /dev/null +++ b/catapult/perf_insights/perf_insights/ui/reports/weather_report.html @@ -0,0 +1,103 @@ +<!DOCTYPE HTML> +<!-- +Copyright (c) 2015 The Chromium Authors. All rights reserved. +Use of this source code is governed by a BSD-style license that can be +found in the LICENSE file. +--> +<link rel="import" href="/tracing/base/iteration_helpers.html"> +<link rel="import" href="/tracing/ui/base/dom_helpers.html"> +<link rel="import" href="/tracing/ui/base/info_bar_group.html"> +<link rel="import" href="/tracing/ui/base/overlay.html"> +<link rel="import" href="/perf_insights/results/results.html"> +<link rel="import" href="/perf_insights/ui/reports/pi_report.html"> +<link rel="import" href="/perf_insights/ui/reports/rail_score_report.html"> +<link rel="import" href="/perf_insights/ui/reports/slice_cost_report.html"> +<link rel="import" href="/perf_insights/ui/grouping_table.html"> +<link rel="import" href="/perf_insights/ui/generic_results_view.html"> + +<polymer-element name="pi-ui-r-weather-report" + extends="pi-ui-r-pi-report" + map-function-href="/perf_insights/mappers/weather_report_map_function.html" + map-function-name="weatherReportMapFunction"> + <template> + <style> + :host { + display: flex; + flex-direction: column; + } + h1 { + margin: 20px 0 0px 0; + font-size: 12pt; + } + .sub-report { + margin-left: 10px; + } + </style> + <tr-ui-b-info-bar-group id="infobars"></tr-ui-b-info-bar-group> + <h1>Slice costs</h1> + <pi-ui-r-slice-cost-report class="sub-report"></pi-ui-r-slice-cost-report> + + <h1>RAIL</h1> + <pi-ui-r-rail-score-report class="sub-report"></pi-ui-r-rail-score-report> + </template> + <script> + 'use strict'; + + Polymer({ + created: function() { + this.mapResults_ = undefined; + }, + + get mapResults() { + return this.mapResults_; + }, + + set mapResults(mapResults) { + this.mapResults_ = mapResults; + this.updateContents_(); + }, + + updateContents_: function() { + var results = this.mapResults_; + if (!results) + results = new tr.r.Results(); + + this.$.infobars.clearMessages(); + this.maybeAddFailuresInfoBarMessage_(results); + + var reports = tr.b.asArray( + this.shadowRoot.querySelectorAll('.sub-report')); + reports.forEach(function(report) { + report.mapResults = results; + }); + }, + + maybeAddFailuresInfoBarMessage_: function(results) { + if (!results.hadFailures) + return; + + function onTellMeMore() { + var dlg = new tr.ui.b.Overlay(); + dlg.dlg = 'Results summary'; + + var grv = document.createElement('pi-ui-generic-results-view'); + + grv.mapResults = results; + grv.style.minHeight = '500px'; + dlg.appendChild(grv); + dlg.visible = true; + } + + var numFailedRuns = results.failedRunInfos.length; + this.$.infobars.addMessage( + 'There were ' + numFailedRuns + ' traces that did not process.', + [ + { + buttonText: 'Tell me more...', + onClick: onTellMeMore + } + ]); + } + }); + </script> +</polymer-element> diff --git a/catapult/perf_insights/perf_insights/ui/wr/weather_report_test.html b/catapult/perf_insights/perf_insights/ui/reports/weather_report_test.html index 113f73bc..8eef577a 100644 --- a/catapult/perf_insights/perf_insights/ui/wr/weather_report_test.html +++ b/catapult/perf_insights/perf_insights/ui/reports/weather_report_test.html @@ -8,7 +8,7 @@ found in the LICENSE file. <link rel="import" href="/perf_insights/value/value.html"> <link rel="import" href="/perf_insights/value/run_info.html"> <link rel="import" href="/perf_insights/results/results.html"> -<link rel="import" href="/perf_insights/ui/wr/weather_report.html"> +<link rel="import" href="/perf_insights/ui/reports/weather_report.html"> <link rel="import" href="/perf_insights/perf_insights_full_config.html"> <link rel="import" href="/tracing/base/xhr.html"> @@ -17,15 +17,15 @@ found in the LICENSE file. 'use strict'; tr.b.unittest.testSuite(function() { - var test_utils = tr.c.test_utils; + var test_utils = tr.c.TestUtils; test('savedData', function() { // TODO(nduca): #1219, stop reading an actual wr file as our test data and // use synthetic data. var dataString = tr.b.getSync( - '/perf_insights/ui/wr/wr_result_view_test_data.json'); + '/perf_insights/ui/reports/wr_result_view_test_data.json'); var results = pi.r.Results.fromDict(JSON.parse(dataString)); - var view = document.createElement('pi-ui-wr-weather-report'); + var view = document.createElement('pi-ui-r-weather-report'); view.mapResults = results; this.addHTMLOutput(view); }); diff --git a/catapult/perf_insights/perf_insights/ui/wr/wr_result_view_test_data.json b/catapult/perf_insights/perf_insights/ui/reports/wr_result_view_test_data.json index 289c8a5e..289c8a5e 100644 --- a/catapult/perf_insights/perf_insights/ui/wr/wr_result_view_test_data.json +++ b/catapult/perf_insights/perf_insights/ui/reports/wr_result_view_test_data.json diff --git a/catapult/perf_insights/perf_insights/upload.py b/catapult/perf_insights/perf_insights/upload.py index 1cd601a1..35b0d8e1 100644 --- a/catapult/perf_insights/perf_insights/upload.py +++ b/catapult/perf_insights/perf_insights/upload.py @@ -11,6 +11,8 @@ from perf_insights import trace_info import third_party.cloudstorage as gcs +from google.appengine.api import app_identity + default_retry_params = gcs.RetryParams(initial_delay=0.2, max_delay=5.0, backoff_factor=2, @@ -32,8 +34,12 @@ class UploadPage(webapp2.RequestHandler): def post(self): trace_uuid = str(uuid.uuid4()) - bucket_name = ('/performance-insights/' + trace_uuid) - gcs_file = gcs.open(bucket_name, + if 'GCS_BUCKET_NAME' not in os.environ: + bucket_name = app_identity.get_default_gcs_bucket_name() + else: + bucket_name = os.environ['GCS_BUCKET_NAME'] + gcs_path = ('/' + bucket_name + '/' + trace_uuid + '.gz') + gcs_file = gcs.open(gcs_path, 'w', content_type='application/octet-stream', options={}, diff --git a/catapult/perf_insights/perf_insights/value/run_info.html b/catapult/perf_insights/perf_insights/value/run_info.html index c298829b..ac228950 100644 --- a/catapult/perf_insights/perf_insights/value/run_info.html +++ b/catapult/perf_insights/perf_insights/value/run_info.html @@ -10,20 +10,20 @@ found in the LICENSE file. tr.exportTo('pi.v', function() { // This value must stay sync'd with the constant of the same name - // in run_info.py. + // in runInfo.py. var PI_VALUE_RUN_INFO_ID = 'perf_insights.value.RunInfo'; - function RunInfo(url, opt_display_name, opt_run_id, opt_metadata) { - if (opt_run_id !== undefined) - this.run_id = opt_run_id; + function RunInfo(url, opt_displayName, opt_runId, opt_metadata) { + if (opt_runId !== undefined) + this.runId = opt_runId; else - this.run_id = 'pi.v.RunInfo-' + tr.b.GUID.allocate(); + this.runId = 'pi.v.RunInfo-' + tr.b.GUID.allocate(); this.url = url; - if (opt_display_name !== undefined) - this.display_name = opt_display_name; + if (opt_displayName !== undefined) + this.displayName = opt_displayName; else - this.display_name = this.url; + this.displayName = this.url; if (opt_metadata !== undefined) this.metadata = opt_metadata; @@ -33,7 +33,7 @@ tr.exportTo('pi.v', function() { RunInfo.fromDict = function(d) { if (d.type !== PI_VALUE_RUN_INFO_ID) - throw new Error('Unsupported run_info format: ' + d.type); + throw new Error('Unsupported runInfo format: ' + d.type); if (d.run_id === undefined) throw new Error('Must contain run_id'); if (d.url === undefined) @@ -45,12 +45,12 @@ tr.exportTo('pi.v', function() { asDict: function() { var d = { type: PI_VALUE_RUN_INFO_ID, - run_id: this.run_id, + run_id: this.runId, url: this.url, metadata: this.metadata }; - if (this.display_name !== this.url) - d.display_name = this.display_name; + if (this.displayName !== this.url) + d.display_name = this.displayName; return d; } }; diff --git a/catapult/perf_insights/perf_insights/value/value.html b/catapult/perf_insights/perf_insights/value/value.html index 377e36f2..32c5f346 100644 --- a/catapult/perf_insights/perf_insights/value/value.html +++ b/catapult/perf_insights/perf_insights/value/value.html @@ -11,43 +11,46 @@ found in the LICENSE file. 'use strict'; tr.exportTo('pi.v', function() { - function Value(run_info, name, opt_options) { + function Value(runInfo, name, opt_options) { var options = opt_options || {}; this.guid = tr.b.GUID.allocate(); - this.run_info = run_info; + this.runInfo = runInfo; this.name = name; this.units = options.units; this.description = options.description; this.important = options.important !== undefined ? options.important : false; - this.ir_stable_id = options.ir_stable_id; + this.irStableID = options.irStableID; } - Value.fromDict = function(run_info, d) { - if (d.run_id !== run_info.run_id) + Value.fromDict = function(runInfo, d) { + if (d.run_id !== runInfo.runId) throw new Error('run_ids mismatch'); if (d.type === 'dict') - return DictValue.fromDict(run_info, d); + return DictValue.fromDict(runInfo, d); if (d.type == 'failure') - return FailureValue.fromDict(run_info, d); + return FailureValue.fromDict(runInfo, d); if (d.type === 'skip') - return SkipValue.fromDict(run_info, d); + return SkipValue.fromDict(runInfo, d); throw new Error('Not implemented'); }; Value.prototype = { asDict: function() { + return this.asJSON(); + }, + asJSON: function() { var d = { - 'run_id': this.run_info.run_id, + 'run_id': this.runInfo.runId, 'name': this.name, 'units': this.units, 'description': this.description, 'important': this.important, - 'ir_stable_id': this.ir_stable_id + 'ir_stable_id': this.irStableID }; this._asDictInto(d); if (d.type === undefined) @@ -61,18 +64,18 @@ tr.exportTo('pi.v', function() { }; - function DictValue(run_info, name, value, opt_options) { + function DictValue(runInfo, name, value, opt_options) { var options = opt_options || {}; - Value.call(this, run_info, name, options); + Value.call(this, runInfo, name, options); this.value = value; } - DictValue.fromDict = function(run_info, d) { + DictValue.fromDict = function(runInfo, d) { if (d.units !== undefined) throw new Error('Expected units to be undefined'); if (d.value === undefined) throw new Error('Expected value to be provided'); - return new DictValue(run_info, d.name, d.value, d); + return new DictValue(runInfo, d.name, d.value, d); } DictValue.prototype = { @@ -85,7 +88,7 @@ tr.exportTo('pi.v', function() { }; - function FailureValue(run_info, name, opt_options) { + function FailureValue(runInfo, name, opt_options) { var options = opt_options || {}; var stack; @@ -102,25 +105,25 @@ tr.exportTo('pi.v', function() { if (typeof stack !== 'string') throw new Error('stack must be provided as a string'); - Value.call(this, run_info, name, options); + Value.call(this, runInfo, name, options); this.stack = stack; } - FailureValue.fromError = function(run_info, e) { + FailureValue.fromError = function(runInfo, e) { var ex = tr.b.normalizeException(e); - return new FailureValue(run_info, + return new FailureValue(runInfo, ex.typeName, {description: ex.message, stack: ex.stack}); } - FailureValue.fromDict = function(run_info, d) { + FailureValue.fromDict = function(runInfo, d) { if (d.units !== undefined) throw new Error('Expected units to be undefined'); if (d.name === undefined) throw new Error('Expected stack_str to be provided'); - return new FailureValue(run_info, d.name, d); + return new FailureValue(runInfo, d.name, d); } FailureValue.prototype = { @@ -133,17 +136,17 @@ tr.exportTo('pi.v', function() { }; - function SkipValue(run_info, name, opt_options) { + function SkipValue(runInfo, name, opt_options) { var options = opt_options || {}; - Value.call(this, run_info, name, options); + Value.call(this, runInfo, name, options); } - SkipValue.fromDict = function(run_info, d) { + SkipValue.fromDict = function(runInfo, d) { if (d.units !== undefined) throw new Error('Expected units to be undefined'); if (d.name === undefined) throw new Error('Expected name to be provided'); - return new SkipValue(run_info, d.name, d); + return new SkipValue(runInfo, d.name, d); } SkipValue.prototype = { diff --git a/catapult/perf_insights/perf_insights/value/value_test.html b/catapult/perf_insights/perf_insights/value/value_test.html index dc06ceb4..0c7bc603 100644 --- a/catapult/perf_insights/perf_insights/value/value_test.html +++ b/catapult/perf_insights/perf_insights/value/value_test.html @@ -14,25 +14,25 @@ found in the LICENSE file. tr.b.unittest.testSuite(function() { test('dictValueBasic', function() { - var run_info = new pi.v.RunInfo('my_test.json'); - var v = new pi.v.DictValue(run_info, 'MyFailure', + var runInfo = new pi.v.RunInfo('my_test.json'); + var v = new pi.v.DictValue(runInfo, 'MyFailure', {my_key: 'my_value'}); var d = v.asDict(); - var v2 = pi.v.Value.fromDict(run_info, d); + var v2 = pi.v.Value.fromDict(runInfo, d); assert.instanceOf(v2, pi.v.DictValue); assert.equal(v.name, v2.name); assert.deepEqual(v.value, v2.value); }); test('failureValueBasic', function() { - var run_info = new pi.v.RunInfo('my_test.json'); - var v = new pi.v.FailureValue(run_info, 'MyFailure', + var runInfo = new pi.v.RunInfo('my_test.json'); + var v = new pi.v.FailureValue(runInfo, 'MyFailure', {description: 'Description', stack: tr.b.stackTraceAsString()}); var d = v.asDict(); - var v2 = pi.v.Value.fromDict(run_info, d); + var v2 = pi.v.Value.fromDict(runInfo, d); assert.instanceOf(v2, pi.v.FailureValue); assert.equal(v.name, v2.name); assert.equal(v.description, v2.description); @@ -40,12 +40,12 @@ tr.b.unittest.testSuite(function() { }); test('skipValueBasic', function() { - var run_info = new pi.v.RunInfo('my_test.json'); - var v = new pi.v.SkipValue(run_info, 'MySkip', + var runInfo = new pi.v.RunInfo('my_test.json'); + var v = new pi.v.SkipValue(runInfo, 'MySkip', {description: 'WhySkipped'}); var d = v.asDict(); - var v2 = pi.v.Value.fromDict(run_info, d); + var v2 = pi.v.Value.fromDict(runInfo, d); assert.instanceOf(v2, pi.v.SkipValue); assert.equal(v.name, v2.name); assert.equal(v.description, v2.description); diff --git a/catapult/perf_insights/perf_insights_build/pi_report_to_html.py b/catapult/perf_insights/perf_insights_build/pi_report_to_html.py index 5aaeb98b..a014c968 100644 --- a/catapult/perf_insights/perf_insights_build/pi_report_to_html.py +++ b/catapult/perf_insights/perf_insights_build/pi_report_to_html.py @@ -12,11 +12,12 @@ from perf_insights import corpus_query from perf_insights import local_directory_corpus_driver from perf_insights import map_function_handle as map_function_handle_module from perf_insights import map_runner +from perf_insights import progress_reporter as progress_reporter_module from perf_insights.results import json_output_formatter from tvcm import generate import perf_insights import perf_insights_project -import polymer_soup +import bs4 def Main(argv, pi_report_file=None): @@ -48,34 +49,29 @@ def Main(argv, pi_report_file=None): query = corpus_query.CorpusQuery.FromString( args.query) - return PiReportToHTML(args.output_file, args.trace_directory, + with codecs.open(args.output_file, mode='w', encoding='utf-8') as ofile: + return PiReportToHTML(ofile, args.trace_directory, pi_report_file, query, args.json, args.stop_on_error, args.jobs) -def _GetAttr(n, attr, defaultValue=None): - for pair in n.attrs: - if pair[0] == attr: - return pair[1] - return defaultValue - def _GetMapFunctionHrefFromPiReport(html_contents): - soup = polymer_soup.PolymerSoup(html_contents) + soup = bs4.BeautifulSoup(html_contents) elements = soup.findAll('polymer-element') for element in elements: - if _GetAttr(element, 'extends').lower() == 'pi-ui-pi-report': - map_function_href = _GetAttr(element, 'map-function-href') + if element.attrs.get('extends').lower() == 'pi-ui-r-pi-report': + map_function_href = element.attrs.get('map-function-href', None) if map_function_href is None: raise Exception('Report is missing map-function-href attribute') - pi_report_element_name = _GetAttr(element, 'name', None) + pi_report_element_name = element.attrs.get('name', None) if pi_report_element_name is None: raise Exception('Report is missing name attribute') return map_function_href, pi_report_element_name - raise Exception('No element that extends pi-ui-pi-report was found') + raise Exception('No element that extends pi-ui-r-pi-report was found') -def PiReportToHTML(output_file, trace_directory, pi_report_file, +def PiReportToHTML(ofile, trace_directory, pi_report_file, query, json_output=False, - stop_on_error=False, jobs=1): + stop_on_error=False, jobs=1, quiet=False): project = perf_insights_project.PerfInsightsProject() with open(pi_report_file, 'r') as f: @@ -91,30 +87,34 @@ def PiReportToHTML(output_file, trace_directory, pi_report_file, raise Exception('Could not find %s' % map_function_href) results = _MapTraces(trace_directory, map_function_handle, - query, stop_on_error, jobs) + query, stop_on_error, jobs, quiet) if stop_on_error and results.had_failures: sys.stderr.write('There were mapping errors. Aborting.'); return 255 - with codecs.open(output_file, mode='w', encoding='utf-8') as ofile: - if json_output: - json.dump(results.AsDict(), ofile, indent=2) - else: - WriteResultsToFile(ofile, project, - pi_report_file, pi_report_element_name, - results) + if json_output: + json.dump(results.AsDict(), ofile, indent=2) + else: + WriteResultsToFile(ofile, project, + pi_report_file, pi_report_element_name, + results) return 0 def _MapTraces(trace_directory, map_function_handle, query, stop_on_error=False, - jobs=1): + jobs=1, quiet=False): corpus_driver = local_directory_corpus_driver.LocalDirectoryCorpusDriver( os.path.abspath(os.path.expanduser(trace_directory))) trace_handles = corpus_driver.GetTraceHandlesMatchingQuery(query) + if quiet: + alt_progress_reporter = progress_reporter_module.ProgressReporter() + else: + alt_progress_reporter = None runner = map_runner.MapRunner(trace_handles, map_function_handle, - stop_on_error=stop_on_error) + stop_on_error=stop_on_error, + progress_reporter=alt_progress_reporter) return runner.Run(jobs=jobs) diff --git a/catapult/perf_insights/perf_insights_build/pi_report_to_html_unittest.py b/catapult/perf_insights/perf_insights_build/pi_report_to_html_unittest.py index 97ff9709..fc1a2985 100644 --- a/catapult/perf_insights/perf_insights_build/pi_report_to_html_unittest.py +++ b/catapult/perf_insights/perf_insights_build/pi_report_to_html_unittest.py @@ -7,10 +7,30 @@ import os import tempfile import unittest -from tracing_build import trace2html +from perf_insights import corpus_query +from perf_insights_build import pi_report_to_html +import perf_insights_project -class Trace2HTMLTests(unittest.TestCase): +class PiReportToHTMLTests(unittest.TestCase): - def test_writeHTMLForTracesToFile(self): - pass
\ No newline at end of file + def test_basic(self): + # Note: We can't use "with" when working with tempfile.NamedTemporaryFile as + # that does not work on Windows. We use the longer, more clunky version + # instead. See https://bugs.python.org/issue14243 for detials. + raw_tmpfile = tempfile.NamedTemporaryFile( + mode='w', suffix='.html', delete=False) + raw_tmpfile.close() + try: + project = perf_insights_project.PerfInsightsProject() + with codecs.open(raw_tmpfile.name, 'w', encoding='utf-8') as tmpfile: + res = pi_report_to_html.PiReportToHTML( + tmpfile, + project.perf_insights_test_data_path, + project.GetAbsPathFromHRef( + '/perf_insights/ui/reports/weather_report.html'), + corpus_query.CorpusQuery.FromString('MAX_TRACE_HANDLES=2'), + quiet=True) + self.assertEquals(res, 0) + finally: + os.remove(raw_tmpfile.name)
\ No newline at end of file diff --git a/catapult/perf_insights/perf_insights_examples/map_process_count.html b/catapult/perf_insights/perf_insights_examples/map_process_count.html index 555911b2..2f8c6f2d 100644 --- a/catapult/perf_insights/perf_insights_examples/map_process_count.html +++ b/catapult/perf_insights/perf_insights_examples/map_process_count.html @@ -4,14 +4,15 @@ Copyright (c) 2015 The Chromium Authors. All rights reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. --> -<link rel="import" href="/perf_insights/value/value.html"> + <link rel="import" href="/perf_insights/map_function.html"> +<link rel="import" href="/perf_insights/value/value.html"> <script> tr.exportTo('pie', function() { - function mapProcessCount(results, run_info, model) { + function mapProcessCount(results, runInfo, model) { results.addValue(new pi.v.DictValue( - run_info, + runInfo, 'load_info', { numProcesses: model.getAllProcesses().length })); @@ -20,7 +21,7 @@ tr.exportTo('pie', function() { pi.MapFunction.register(mapProcessCount); return { - mapProcessCount: mapProcessCount + mapProcessCountForTest: mapProcessCount }; }); </script> diff --git a/catapult/perf_insights/perf_insights_examples/map_process_count_test.html b/catapult/perf_insights/perf_insights_examples/map_process_count_test.html index 0629a775..01d73cc0 100644 --- a/catapult/perf_insights/perf_insights_examples/map_process_count_test.html +++ b/catapult/perf_insights/perf_insights_examples/map_process_count_test.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <!-- -Copyright (c) 2013 The Chromium Authors. All rights reserved. +Copyright (c) 2015 The Chromium Authors. All rights reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. --> @@ -15,7 +15,7 @@ found in the LICENSE file. 'use strict'; tr.b.unittest.testSuite(function() { - var test_utils = tr.c.test_utils; + var test_utils = tr.c.TestUtils; test('mapperTest', function() { var m = test_utils.newModel(function(m) { var p1 = m.getOrCreateProcess(1); @@ -27,11 +27,11 @@ tr.b.unittest.testSuite(function() { }); var results = new pi.r.Results(); - var run_info = new pi.v.RunInfo('my_test.json'); - pie.mapProcessCount(results, run_info, m); + var runInfo = new pi.v.RunInfo('my_test.json'); + pie.mapProcessCountForTest(results, runInfo, m); - assert.equal(results.all_values.length, 1); - assert.isTrue(results.all_values[0] instanceof pi.v.DictValue); + assert.equal(results.allValues.length, 1); + assert.isTrue(results.allValues[0] instanceof pi.v.DictValue); }); }); diff --git a/catapult/perf_insights/perf_insights_examples/map_startup_info.html b/catapult/perf_insights/perf_insights_examples/map_startup_info.html index 9069d68e..962bc6fc 100644 --- a/catapult/perf_insights/perf_insights_examples/map_startup_info.html +++ b/catapult/perf_insights/perf_insights_examples/map_startup_info.html @@ -4,15 +4,16 @@ Copyright (c) 2015 The Chromium Authors. All rights reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. --> -<link rel="import" href="/perf_insights/value/value.html"> + <link rel="import" href="/perf_insights/map_function.html"> +<link rel="import" href="/perf_insights/value/value.html"> <link rel="import" href="/tracing/base/range.html"> <link rel="import" href="/tracing/extras/chrome/chrome_browser_helper.html"> <link rel="import" href="/tracing/extras/chrome/chrome_renderer_helper.html"> <script> tr.exportTo('pie', function() { - function mapStartupInfo(results, run_info, model) { + function mapStartupInfo(results, runInfo, model) { var startupIRs = model.interactionRecords.filter(function(ir) { return ir instanceof tr.e.rail.LoadInteractionRecord && ir.name === 'Startup'; @@ -36,10 +37,10 @@ tr.exportTo('pie', function() { }); if (browser_startup.isEmpty && renderer_startup.isEmpty) { - results.addValue(new pi.v.SkipValue(run_info, 'startup_info')); + results.addValue(new pi.v.SkipValue(runInfo, 'startup_info')); } else { results.addValue(new pi.v.DictValue( - run_info, + runInfo, 'startup_info', { 'browserStartup': browser_startup, @@ -52,7 +53,7 @@ tr.exportTo('pie', function() { // Exporting for tests. return { - mapStartupInfo: mapStartupInfo + mapStartupInfoForTest: mapStartupInfo }; }); </script> diff --git a/catapult/perf_insights/perf_insights_examples/map_startup_info_test.html b/catapult/perf_insights/perf_insights_examples/map_startup_info_test.html index a4de79fa..365702ec 100644 --- a/catapult/perf_insights/perf_insights_examples/map_startup_info_test.html +++ b/catapult/perf_insights/perf_insights_examples/map_startup_info_test.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <!-- -Copyright (c) 2013 The Chromium Authors. All rights reserved. +Copyright (c) 2015 The Chromium Authors. All rights reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. --> @@ -17,7 +17,7 @@ found in the LICENSE file. 'use strict'; tr.b.unittest.testSuite(function() { - var test_utils = tr.c.test_utils; + var test_utils = tr.c.TestUtils; test('mapperTest', function() { var m = test_utils.newModel(function(m) { @@ -46,25 +46,25 @@ tr.b.unittest.testSuite(function() { }); var results = new pi.r.Results(); - var run_info = new pi.v.RunInfo('my_test.json'); - pie.mapStartupInfo(results, run_info, m); + var runInfo = new pi.v.RunInfo('my_test.json'); + pie.mapStartupInfoForTest(results, runInfo, m); - assert.equal(results.all_values.length, 1); - assert.equal(results.all_values[0].value.browserStartup.min, 10); - assert.equal(results.all_values[0].value.browserStartup.max, 80); - assert.isFalse(results.all_values[0].value.browserStartup.isEmpty); - assert.isTrue(results.all_values[0].value.rendererStartup.isEmpty); + assert.equal(results.allValues.length, 1); + assert.equal(results.allValues[0].value.browserStartup.min, 10); + assert.equal(results.allValues[0].value.browserStartup.max, 80); + assert.isFalse(results.allValues[0].value.browserStartup.isEmpty); + assert.isTrue(results.allValues[0].value.rendererStartup.isEmpty); }); test('mapperTestEmptyTrace', function() { var m = test_utils.newModel(); var results = new pi.r.Results(); - var run_info = new pi.v.RunInfo('my_test.json'); - pie.mapStartupInfo(results, run_info, m); + var runInfo = new pi.v.RunInfo('my_test.json'); + pie.mapStartupInfoForTest(results, runInfo, m); - assert.equal(results.all_values.length, 1); - assert.isTrue(results.all_values[0] instanceof pi.v.SkipValue); + assert.equal(results.allValues.length, 1); + assert.isTrue(results.allValues[0] instanceof pi.v.SkipValue); }); }); |