blob: d89e0da9440747ad27866358f33d87d09aedb870 [file] [log] [blame]
# Copyright 2020 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.
from core import perf_benchmark
from core import platforms
import page_sets
from page_sets.system_health import story_tags
from telemetry import benchmark
from telemetry import story
from telemetry.web_perf import timeline_based_measurement
@benchmark.Info(
emails=['chrometto-team@google.com'],
documentation_url='https://goto.google.com/power-mobile-benchmark')
class PowerMobile(perf_benchmark.PerfBenchmark):
"""A benchmark for power measurements using on-device power monitor (ODPM).
"""
SUPPORTED_PLATFORMS = [story.expectations.ALL_ANDROID]
SUPPORTED_PLATFORM_TAGS = [platforms.ANDROID]
def CreateStorySet(self, options):
return page_sets.SystemHealthStorySet(platform='mobile',
tag=story_tags.INFINITE_SCROLL)
def CreateCoreTimelineBasedMeasurementOptions(self):
options = timeline_based_measurement.Options()
options.config.enable_experimental_system_tracing = True
options.config.system_trace_config.EnableChrome(
chrome_trace_config=options.config.chrome_trace_config)
options.config.system_trace_config.EnablePower()
options.config.system_trace_config.EnableFtraceCpu()
options.config.system_trace_config.EnableFtraceSched()
options.SetTimelineBasedMetrics(
['tbmv3:power_rails_metric', 'tbmv3:power_cpu_estimate'])
return options
@classmethod
def Name(cls):
return 'power.mobile'