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

Side by Side Diff: tools/perf/benchmarks/memory_infra.py

Issue 2458413002: Reland of [telemetry] Trace config should be used to disable periodic dumps (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase. Created 4 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 unified diff | Download patch
« no previous file with comments | « no previous file | tools/perf/benchmarks/oortonline.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2015 The Chromium Authors. All rights reserved. 1 # Copyright 2015 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import re 5 import re
6 6
7 from core import perf_benchmark 7 from core import perf_benchmark
8 8
9 from telemetry import benchmark 9 from telemetry import benchmark
10 from telemetry.timeline import chrome_trace_category_filter 10 from telemetry.timeline import chrome_trace_category_filter
11 from telemetry.timeline import chrome_trace_config
11 from telemetry.web_perf import timeline_based_measurement 12 from telemetry.web_perf import timeline_based_measurement
12 13
13 import page_sets 14 import page_sets
14 15
15 16
16 # See tr.v.Numeric.getSummarizedScalarNumericsWithNames() 17 # See tr.v.Numeric.getSummarizedScalarNumericsWithNames()
17 # https://github.com/catapult-project/catapult/blob/master/tracing/tracing/value /numeric.html#L323 18 # https://github.com/catapult-project/catapult/blob/master/tracing/tracing/value /numeric.html#L323
18 _IGNORED_STATS_RE = re.compile( 19 _IGNORED_STATS_RE = re.compile(
19 r'(?<!dump)(?<!process)_(std|count|max|min|sum|pct_\d{4}(_\d+)?)$') 20 r'(?<!dump)(?<!process)_(std|count|max|min|sum|pct_\d{4}(_\d+)?)$')
20 21
21 22
22 class _MemoryInfra(perf_benchmark.PerfBenchmark): 23 class _MemoryInfra(perf_benchmark.PerfBenchmark):
23 """Base class for new-generation memory benchmarks based on memory-infra. 24 """Base class for new-generation memory benchmarks based on memory-infra.
24 25
25 This benchmark records data using memory-infra (https://goo.gl/8tGc6O), which 26 This benchmark records data using memory-infra (https://goo.gl/8tGc6O), which
26 is part of chrome tracing, and extracts it using timeline-based measurements. 27 is part of chrome tracing, and extracts it using timeline-based measurements.
27 """ 28 """
28 29
29 def SetExtraBrowserOptions(self, options):
30 options.AppendExtraBrowserArgs([
31 # TODO(perezju): Temporary workaround to disable periodic memory dumps.
32 # See: http://crbug.com/513692
33 '--enable-memory-benchmarking',
34 ])
35
36 def CreateTimelineBasedMeasurementOptions(self): 30 def CreateTimelineBasedMeasurementOptions(self):
37 # Enable only memory-infra, to get memory dumps, and blink.console, to get 31 # Enable only memory-infra, to get memory dumps, and blink.console, to get
38 # the timeline markers used for mapping threads to tabs. 32 # the timeline markers used for mapping threads to tabs.
39 trace_memory = chrome_trace_category_filter.ChromeTraceCategoryFilter( 33 trace_memory = chrome_trace_category_filter.ChromeTraceCategoryFilter(
40 filter_string='-*,blink.console,disabled-by-default-memory-infra') 34 filter_string='-*,blink.console,disabled-by-default-memory-infra')
41 tbm_options = timeline_based_measurement.Options( 35 tbm_options = timeline_based_measurement.Options(
42 overhead_level=trace_memory) 36 overhead_level=trace_memory)
43 tbm_options.config.enable_android_graphics_memtrack = True 37 tbm_options.config.enable_android_graphics_memtrack = True
44 tbm_options.SetTimelineBasedMetrics(['memoryMetric']) 38 tbm_options.SetTimelineBasedMetrics(['memoryMetric'])
39 # Setting an empty memory dump config disables periodic dumps.
40 tbm_options.config.chrome_trace_config.SetMemoryDumpConfig(
41 chrome_trace_config.MemoryDumpConfig())
45 return tbm_options 42 return tbm_options
46 43
47 44
48 # TODO(bashi): Workaround for http://crbug.com/532075. 45 # TODO(bashi): Workaround for http://crbug.com/532075.
49 # @benchmark.Enabled('android') shouldn't be needed. 46 # @benchmark.Enabled('android') shouldn't be needed.
50 @benchmark.Enabled('android') 47 @benchmark.Enabled('android')
51 class MemoryBenchmarkTop10Mobile(_MemoryInfra): 48 class MemoryBenchmarkTop10Mobile(_MemoryInfra):
52 """Measure foreground/background memory on top 10 mobile page set. 49 """Measure foreground/background memory on top 10 mobile page set.
53 50
54 This metric provides memory measurements for the System Health Plan of 51 This metric provides memory measurements for the System Health Plan of
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 r'(reported_by_chrome:v8|reported_by_os:system_memory:[^:]+$)') 192 r'(reported_by_chrome:v8|reported_by_os:system_memory:[^:]+$)')
196 193
197 def CreateTimelineBasedMeasurementOptions(self): 194 def CreateTimelineBasedMeasurementOptions(self):
198 v8_categories = [ 195 v8_categories = [
199 'blink.console', 'renderer.scheduler', 'v8', 'webkit.console'] 196 'blink.console', 'renderer.scheduler', 'v8', 'webkit.console']
200 memory_categories = ['blink.console', 'disabled-by-default-memory-infra'] 197 memory_categories = ['blink.console', 'disabled-by-default-memory-infra']
201 category_filter = chrome_trace_category_filter.ChromeTraceCategoryFilter( 198 category_filter = chrome_trace_category_filter.ChromeTraceCategoryFilter(
202 ','.join(['-*'] + v8_categories + memory_categories)) 199 ','.join(['-*'] + v8_categories + memory_categories))
203 options = timeline_based_measurement.Options(category_filter) 200 options = timeline_based_measurement.Options(category_filter)
204 options.SetTimelineBasedMetrics(['v8AndMemoryMetrics']) 201 options.SetTimelineBasedMetrics(['v8AndMemoryMetrics'])
202 # Setting an empty memory dump config disables periodic dumps.
203 options.config.chrome_trace_config.SetMemoryDumpConfig(
204 chrome_trace_config.MemoryDumpConfig())
205 return options 205 return options
206 206
207 @classmethod 207 @classmethod
208 def ValueCanBeAddedPredicate(cls, value, _): 208 def ValueCanBeAddedPredicate(cls, value, _):
209 if 'memory:chrome' in value.name: 209 if 'memory:chrome' in value.name:
210 # TODO(petrcermak): Remove the first two cases once 210 # TODO(petrcermak): Remove the first two cases once
211 # https://codereview.chromium.org/2018503002/ lands in Catapult and rolls 211 # https://codereview.chromium.org/2018503002/ lands in Catapult and rolls
212 # into Chromium. 212 # into Chromium.
213 return ('renderer:subsystem:v8' in value.name or 213 return ('renderer:subsystem:v8' in value.name or
214 'renderer:vmstats:overall' in value.name or 214 'renderer:vmstats:overall' in value.name or
(...skipping 21 matching lines...) Expand all
236 of long running idle Gmail page """ 236 of long running idle Gmail page """
237 page_set = page_sets.LongRunningIdleGmailBackgroundPageSet 237 page_set = page_sets.LongRunningIdleGmailBackgroundPageSet
238 238
239 @classmethod 239 @classmethod
240 def Name(cls): 240 def Name(cls):
241 return 'memory.long_running_idle_gmail_background_tbmv2' 241 return 'memory.long_running_idle_gmail_background_tbmv2'
242 242
243 @classmethod 243 @classmethod
244 def ShouldDisable(cls, possible_browser): # http://crbug.com/616530 244 def ShouldDisable(cls, possible_browser): # http://crbug.com/616530
245 return cls.IsSvelte(possible_browser) 245 return cls.IsSvelte(possible_browser)
OLDNEW
« no previous file with comments | « no previous file | tools/perf/benchmarks/oortonline.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698