1# Copyright 2016 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5from core import perf_benchmark
6
7from telemetry import benchmark
8from telemetry.timeline import chrome_trace_category_filter
9from telemetry.timeline import chrome_trace_config
10from telemetry.web_perf import timeline_based_measurement
11
12import page_sets
13
14
15@benchmark.Info(emails=['ssid@chromium.org'])
16class TracingWithBackgroundMemoryInfra(perf_benchmark.PerfBenchmark):
17  """Measures the overhead of background memory-infra dumps"""
18  page_set = page_sets.Top10PageSet
19
20  def CreateCoreTimelineBasedMeasurementOptions(self):
21    # Enable only memory-infra category with periodic background mode dumps
22    # every 200 milliseconds.
23    trace_memory = chrome_trace_category_filter.ChromeTraceCategoryFilter(
24        filter_string='-*,blink.console,disabled-by-default-memory-infra')
25    options = timeline_based_measurement.Options(overhead_level=trace_memory)
26    memory_dump_config = chrome_trace_config.MemoryDumpConfig()
27    memory_dump_config.AddTrigger('background', 200)
28    options.config.chrome_trace_config.SetMemoryDumpConfig(memory_dump_config)
29    options.SetTimelineBasedMetrics(['tracingMetric'])
30    return options
31
32  @classmethod
33  def Name(cls):
34    return 'tracing.tracing_with_background_memory_infra'
35