Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(158)

Unified Diff: tools/telemetry/telemetry/internal/platform/power_monitor/monsoon_power_monitor.py

Issue 1452753002: Revert of Improve readability of power monitoring code and add additional (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/telemetry/telemetry/internal/platform/power_monitor/monsoon_power_monitor.py
diff --git a/tools/telemetry/telemetry/internal/platform/power_monitor/monsoon_power_monitor.py b/tools/telemetry/telemetry/internal/platform/power_monitor/monsoon_power_monitor.py
index abbd9f4de158b0d1ce5e19b0c30fa6dd6b442f82..a9537e0fc4ddedd9b18c91c30727081a60b16e9d 100644
--- a/tools/telemetry/telemetry/internal/platform/power_monitor/monsoon_power_monitor.py
+++ b/tools/telemetry/telemetry/internal/platform/power_monitor/monsoon_power_monitor.py
@@ -3,13 +3,12 @@
# found in the LICENSE file.
import json
-import logging
import multiprocessing
import tempfile
import time
from telemetry.core import exceptions
-from telemetry.internal.platform.power_monitor import android_power_monitor_base
+from telemetry.internal.platform import power_monitor
from telemetry.internal.platform.profiler import monsoon
@@ -43,8 +42,7 @@
}
json.dump(result, output)
-
-class MonsoonPowerMonitor(android_power_monitor_base.AndroidPowerMonitorBase):
+class MonsoonPowerMonitor(power_monitor.PowerMonitor):
def __init__(self, _, platform_backend):
super(MonsoonPowerMonitor, self).__init__()
self._powermonitor_process = None
@@ -66,7 +64,8 @@
return self._monsoon is not None
def StartMonitoringPower(self, browser):
- self._CheckStart()
+ assert not self._powermonitor_process, (
+ 'Must call StopMonitoringPower().')
self._powermonitor_output_file = tempfile.TemporaryFile()
self._is_collecting = multiprocessing.Event()
self._powermonitor_process = multiprocessing.Process(
@@ -82,7 +81,8 @@
raise exceptions.ProfilingException('Failed to start data collection.')
def StopMonitoringPower(self):
- self._CheckStop()
+ assert self._powermonitor_process, (
+ 'StartMonitoringPower() not called.')
try:
# Tell powermonitor to take an immediate sample and join.
self._is_collecting.clear()
@@ -104,17 +104,20 @@
Returns:
Dictionary in the format returned by StopMonitoringPower().
"""
+ power_samples = []
+ total_energy_consumption_mwh = 0
+
result = json.loads(powermonitor_output)
if result['samples']:
- timedelta_h = (result['duration_s'] / len(result['samples'])) / 3600.0
- power_samples = [current_a * voltage_v * 10**3
- for (current_a, voltage_v) in result['samples']]
- total_energy_consumption_mwh = sum(power_samples) * timedelta_h
- else:
- logging.warning('Sample information not available.')
- power_samples = []
- total_energy_consumption_mwh = 0
+ timedelta_h = result['duration_s'] / len(result['samples']) / 3600
+ for (current_a, voltage_v) in result['samples']:
+ energy_consumption_mw = current_a * voltage_v * 10**3
+ total_energy_consumption_mwh += energy_consumption_mw * timedelta_h
+ power_samples.append(energy_consumption_mw)
- return {'identifier':'monsoon',
- 'power_samples_mw':power_samples,
- 'monsoon_energy_consumption_mwh':total_energy_consumption_mwh}
+ out_dict = {}
+ out_dict['identifier'] = 'monsoon'
+ out_dict['power_samples_mw'] = power_samples
+ out_dict['monsoon_energy_consumption_mwh'] = total_energy_consumption_mwh
+
+ return out_dict

Powered by Google App Engine
This is Rietveld 408576698