Index: tools/perf/benchmarks/memory_health_plan.py |
diff --git a/tools/perf/benchmarks/memory_health_plan.py b/tools/perf/benchmarks/memory_health_plan.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..14be34cbf3f10ca62aec10f793ad8f95beee3e28 |
--- /dev/null |
+++ b/tools/perf/benchmarks/memory_health_plan.py |
@@ -0,0 +1,43 @@ |
+# Copyright 2015 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. |
+ |
+import re |
+ |
+from core import perf_benchmark |
+ |
+from telemetry import benchmark |
+from telemetry.timeline import tracing_category_filter |
+from telemetry.web_perf import timeline_based_measurement |
+ |
+import page_sets |
+ |
+ |
+RE_BENCHMARK_VALUES = re.compile('(fore|back)ground-memory_') |
+ |
+ |
+@benchmark.Enabled('android') |
+class MemoryHealthPlan(perf_benchmark.PerfBenchmark): |
+ """Timeline based benchmark for the Memory Health Plan.""" |
+ |
+ page_set = page_sets.MemoryHealthStory |
+ |
+ def SetExtraBrowserOptions(self, options): |
+ # TODO(perezju): Temporary workaround to disable periodic memory dumps. |
+ # See: http://crbug.com/513692 |
+ options.AppendExtraBrowserArgs('--enable-memory-benchmarking') |
+ |
+ def CreateTimelineBasedMeasurementOptions(self): |
+ # Enable only memory-infra, to get memory dumps, and blink.console, to get |
+ # the timeline markers used for mapping threads to tabs. |
+ trace_memory = tracing_category_filter.TracingCategoryFilter( |
+ filter_string='-*,blink.console,disabled-by-default-memory-infra') |
+ return timeline_based_measurement.Options(overhead_level=trace_memory) |
+ |
+ @classmethod |
+ def Name(cls): |
+ return 'memory.memory_health_plan' |
+ |
+ @classmethod |
+ def ValueCanBeAddedPredicate(cls, value, is_first_result): |
+ return bool(RE_BENCHMARK_VALUES.match(value.name)) |