[tools/perf] Add long running dual browser benchmark
Add a new benchmark for measuring memory during prolonged usage of
alternating browsers.
Benchmark is same as memory.dual_browser_test, but the test is run for
60 iterations and the browser is *not* restarted between page set
repeats.
BUG=623015
CQ_EXTRA_TRYBOTS=tryserver.chromium.perf:android_s5_perf_cq
Review-Url: https://codereview.chromium.org/2095923002
Cr-Commit-Position: refs/heads/master@{#402215}
diff --git a/tools/perf/benchmarks/memory_infra.py b/tools/perf/benchmarks/memory_infra.py
index 7107c8f..d3e5d10 100644
--- a/tools/perf/benchmarks/memory_infra.py
+++ b/tools/perf/benchmarks/memory_infra.py
@@ -115,7 +115,7 @@
return not _IGNORED_STATS_RE.search(value.name)
-# Benchmark is disabled by default because it takes too long to run.
+# Benchmark disabled by default. Force to run with --also-run-disabled-tests.
@benchmark.Disabled('all')
class DualBrowserBenchmark(_MemoryInfra):
"""Measures memory usage while interacting with two different browsers.
@@ -139,6 +139,33 @@
return not _IGNORED_STATS_RE.search(value.name)
+# Benchmark disabled by default. Force to run with --also-run-disabled-tests.
+@benchmark.Disabled('all')
+class LongRunningDualBrowserBenchmark(_MemoryInfra):
+ """Measures memory during prolonged usage of alternating browsers.
+
+ Same as memory.dual_browser_test, but the test is run for 60 iterations
+ and the browser is *not* restarted between page set repeats.
+ """
+ TBM_VERSION = 2
+ page_set = page_sets.DualBrowserStorySet
+ options = {'pageset_repeat': 60}
+
+ @classmethod
+ def Name(cls):
+ return 'memory.long_running_dual_browser_test'
+
+ @classmethod
+ def ShouldTearDownStateAfterEachStorySetRun(cls):
+ return False
+
+ @classmethod
+ def ValueCanBeAddedPredicate(cls, value, is_first_result):
+ # TODO(crbug.com/610962): Remove this stopgap when the perf dashboard
+ # is able to cope with the data load generated by TBMv2 metrics.
+ return not _IGNORED_STATS_RE.search(value.name)
+
+
# TODO(bashi): Workaround for http://crbug.com/532075
# @benchmark.Enabled('android') shouldn't be needed.
@benchmark.Enabled('android')