| <!DOCTYPE html> |
| <!-- |
| Copyright 2016 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/statistics.html"> |
| <link rel="import" href="/tracing/metrics/metric_registry.html"> |
| <link rel="import" href="/tracing/value/histogram.html"> |
| |
| <script> |
| 'use strict'; |
| |
| tr.exportTo('tr.metrics.sh', function() { |
| function scrollPowerMetric(values, model) { |
| if (!model.device.powerSeries) |
| return; |
| var timeHist = new tr.v.Histogram('time:scroll', |
| tr.b.Unit.byName.timeDurationInMs_smallerIsBetter) |
| timeHist.description = 'Time spent in scrolling'; |
| var energyHist = new tr.v.Histogram('energy:scroll', |
| tr.b.Unit.byName.energyInJoules_smallerIsBetter) |
| energyHist.description = 'Energy consumed by scrolling'; |
| var powerHist = new tr.v.Histogram('power:scroll', |
| tr.b.Unit.byName.powerInWatts_smallerIsBetter) |
| powerHist.description = 'Energy consumption rate in scrolling'; |
| |
| timeHist.customizeSummaryOptions({ |
| avg: false, |
| count: false, |
| max: true, |
| min: true, |
| std: false, |
| sum: true, |
| }); |
| |
| energyHist.customizeSummaryOptions({ |
| avg: false, |
| count: false, |
| max: true, |
| min: true, |
| std: false, |
| sum: true, |
| }); |
| |
| powerHist.customizeSummaryOptions({ |
| avg: true, |
| count: false, |
| max: true, |
| min: true, |
| std: false, |
| sum: false, |
| }); |
| |
| for (var exp of model.userModel.expectations) { |
| if (exp.title.indexOf("Scroll") !== -1) { |
| var durationInMs = exp.duration; |
| var durationInS = tr.b.convertUnit(durationInMs, |
| tr.b.UnitScale.Metric.MILLI, tr.b.UnitScale.Metric.NONE); |
| var energyInJ = model.device.powerSeries.getEnergyConsumedInJ( |
| exp.start, exp.end); |
| var powerInW = energyInJ / durationInS; |
| |
| timeHist.addSample(durationInMs); |
| energyHist.addSample(energyInJ); |
| powerHist.addSample(powerInW); |
| } |
| } |
| |
| values.addHistogram(timeHist); |
| values.addHistogram(energyHist); |
| values.addHistogram(powerHist); |
| } |
| |
| tr.metrics.MetricRegistry.register(scrollPowerMetric); |
| |
| return { |
| scrollPowerMetric: scrollPowerMetric |
| }; |
| }); |
| </script> |