OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <!-- | 2 <!-- |
3 Copyright 2016 The Chromium Authors. All rights reserved. | 3 Copyright 2016 The Chromium Authors. All rights reserved. |
4 Use of this source code is governed by a BSD-style license that can be | 4 Use of this source code is governed by a BSD-style license that can be |
5 found in the LICENSE file. | 5 found in the LICENSE file. |
6 --> | 6 --> |
7 | 7 |
8 <link rel="import" href="/tracing/base/statistics.html"> | 8 <link rel="import" href="/tracing/base/statistics.html"> |
9 <link rel="import" href="/tracing/metrics/metric_registry.html"> | 9 <link rel="import" href="/tracing/metrics/metric_registry.html"> |
10 <link rel="import" href="/tracing/metrics/system_health/clock_sync_latency_metri
c.html"> | 10 <link rel="import" href="/tracing/metrics/system_health/clock_sync_latency_metri
c.html"> |
11 <link rel="import" href="/tracing/value/histogram.html"> | 11 <link rel="import" href="/tracing/value/histogram.html"> |
12 <link rel="import" href="/tracing/value/unit_scale.html"> | 12 <link rel="import" href="/tracing/value/unit_scale.html"> |
13 <link rel="import" href="/tracing/value/value.html"> | 13 <link rel="import" href="/tracing/value/value.html"> |
14 | 14 |
15 <script> | 15 <script> |
16 'use strict'; | 16 'use strict'; |
17 | 17 |
18 tr.exportTo('tr.metrics.sh', function() { | 18 tr.exportTo('tr.metrics.sh', function() { |
19 | 19 |
20 var IDEAL_FRAME_RATE_FPS = 60; | 20 var IDEAL_FRAME_RATE_FPS = 60; |
21 var IDEAL_FRAME_DURATION_MS = tr.v.convertUnit(1.0 / IDEAL_FRAME_RATE_FPS, | 21 var IDEAL_FRAME_DURATION_MS = tr.v.convertUnit(1.0 / IDEAL_FRAME_RATE_FPS, |
22 tr.v.UnitScale.Metric.NONE, tr.v.UnitScale.Metric.MILLI); | 22 tr.v.UnitScale.Metric.NONE, tr.v.UnitScale.Metric.MILLI); |
23 | 23 |
24 function energyConsumedPerFrame(valueList, model) { | 24 function energyConsumedPerFrame(valueList, model) { |
25 var frameEnergyConsumedInJ = tr.v.NumericBuilder.createLinear( | 25 var frameEnergyConsumedInJ = new tr.v.Histogram( |
26 tr.v.Unit.byName.energyInJoules_smallerIsBetter, | 26 tr.v.Unit.byName.energyInJoules_smallerIsBetter, |
27 tr.b.Range.fromExplicitRange(0, .5), 20).build(); | 27 tr.v.HistogramBinBoundaries.createLinear(0, 0.5, 20)); |
| 28 |
28 var frameStartTs = parseFloat(model.device.powerSeries.samples[0].start); | 29 var frameStartTs = parseFloat(model.device.powerSeries.samples[0].start); |
29 while (model.device.powerSeries.getSamplesWithinRange( | 30 while (model.device.powerSeries.getSamplesWithinRange( |
30 frameStartTs, frameStartTs + IDEAL_FRAME_DURATION_MS).length) { | 31 frameStartTs, frameStartTs + IDEAL_FRAME_DURATION_MS).length) { |
31 var currentFrameEnergy = model.device.powerSeries.getEnergyConsumedInJ( | 32 var currentFrameEnergy = model.device.powerSeries.getEnergyConsumedInJ( |
32 frameStartTs, frameStartTs + IDEAL_FRAME_DURATION_MS); | 33 frameStartTs, frameStartTs + IDEAL_FRAME_DURATION_MS); |
33 frameStartTs += IDEAL_FRAME_DURATION_MS; | 34 frameStartTs += IDEAL_FRAME_DURATION_MS; |
34 frameEnergyConsumedInJ.add(currentFrameEnergy); | 35 frameEnergyConsumedInJ.add(currentFrameEnergy); |
35 } | 36 } |
36 | 37 |
37 valueList.addValue(new tr.v.NumericValue( | 38 valueList.addValue(new tr.v.NumericValue( |
38 'energy_consumed_per_frame', frameEnergyConsumedInJ, | 39 'energy_consumed_per_frame', frameEnergyConsumedInJ, |
39 {description: 'Energy consumption per frame in joules'})); | 40 {description: 'Energy consumption per frame in joules'})); |
40 } | 41 } |
41 | 42 |
42 function powerMetric(valueList, model) { | 43 function powerMetric(valueList, model) { |
43 if (!model.device.powerSeries) | 44 if (!model.device.powerSeries) |
44 return; | 45 return; |
45 | 46 |
46 energyConsumedPerFrame(valueList, model); | 47 energyConsumedPerFrame(valueList, model); |
47 } | 48 } |
48 | 49 |
49 tr.metrics.MetricRegistry.register(powerMetric); | 50 tr.metrics.MetricRegistry.register(powerMetric); |
50 | 51 |
51 return { | 52 return { |
52 powerMetric: powerMetric | 53 powerMetric: powerMetric |
53 }; | 54 }; |
54 }); | 55 }); |
55 </script> | 56 </script> |
OLD | NEW |