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

Side by Side Diff: tools/perf/page_sets/system_health/system_health_story.py

Issue 2248693002: [system-health] Wait for 10 seconds after each story (except for memory benchmarks) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Don't modify memory benchmarks yet Created 4 years, 4 months 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 | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2016 The Chromium Authors. All rights reserved. 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 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 logging
6
7 from page_sets.system_health import platforms 5 from page_sets.system_health import platforms
8 6
9 from telemetry.page import page 7 from telemetry.page import page
10 8
11 9
12 _DUMP_WAIT_TIME = 3 10 # Extra wait time after the page has loaded required by the loading metric. We
11 # use it in all benchmarks to avoid divergence between benchmarks.
12 # TODO(petrcermak): Switch the memory benchmarks to use it as well.
13 _WAIT_TIME_AFTER_LOAD = 10
13 14
14 15
15 class _MetaSystemHealthStory(type): 16 class _MetaSystemHealthStory(type):
16 """Metaclass for SystemHealthStory.""" 17 """Metaclass for SystemHealthStory."""
17 18
18 @property 19 @property
19 def ABSTRACT_STORY(cls): 20 def ABSTRACT_STORY(cls):
20 """Class field marking whether the class is abstract. 21 """Class field marking whether the class is abstract.
21 22
22 If true, the story will NOT be instantiated and added to a System Health 23 If true, the story will NOT be instantiated and added to a System Health
(...skipping 16 matching lines...) Expand all
39 40
40 def __init__(self, story_set, take_memory_measurement): 41 def __init__(self, story_set, take_memory_measurement):
41 case, group, _ = self.NAME.split(':') 42 case, group, _ = self.NAME.split(':')
42 super(SystemHealthStory, self).__init__( 43 super(SystemHealthStory, self).__init__(
43 page_set=story_set, name=self.NAME, url=self.URL, 44 page_set=story_set, name=self.NAME, url=self.URL,
44 credentials_path='../data/credentials.json', 45 credentials_path='../data/credentials.json',
45 grouping_keys={'case': case, 'group': group}) 46 grouping_keys={'case': case, 'group': group})
46 self._take_memory_measurement = take_memory_measurement 47 self._take_memory_measurement = take_memory_measurement
47 48
48 def _Measure(self, action_runner): 49 def _Measure(self, action_runner):
50 if self._ShouldMeasureMemory(action_runner):
51 action_runner.MeasureMemory(deterministic_mode=True)
52 else:
53 action_runner.Wait(_WAIT_TIME_AFTER_LOAD)
54
55 def _ShouldMeasureMemory(self, action_runner):
49 if not self._take_memory_measurement: 56 if not self._take_memory_measurement:
50 return 57 return False
51 # TODO(petrcermak): This method is essentially the same as
52 # MemoryHealthPage._TakeMemoryMeasurement() in memory_health_story.py.
53 # Consider sharing the common code.
54 action_runner.Wait(_DUMP_WAIT_TIME)
55 action_runner.ForceGarbageCollection()
56 action_runner.Wait(_DUMP_WAIT_TIME)
57 tracing_controller = action_runner.tab.browser.platform.tracing_controller 58 tracing_controller = action_runner.tab.browser.platform.tracing_controller
58 if not tracing_controller.is_tracing_running: 59 if not tracing_controller.is_tracing_running:
59 return # Tracing is not running, e.g., when recording a WPR archive. 60 return False # Tracing is not running, e.g. when recording a WPR archive.
60 if not action_runner.tab.browser.DumpMemory(): 61 return True
perezju 2016/08/17 16:24:45 This check is already happening within MeasureMemo
petrcermak 2016/08/23 14:34:39 We actually need this for when we record the stori
61 logging.error('Unable to get a memory dump for %s.', self.name)
62 62
63 def _Login(self, action_runner): 63 def _Login(self, action_runner):
64 pass 64 pass
65 65
66 def _DidLoadDocument(self, action_runner): 66 def _DidLoadDocument(self, action_runner):
67 pass 67 pass
68 68
69 def RunNavigateSteps(self, action_runner): 69 def RunNavigateSteps(self, action_runner):
70 self._Login(action_runner) 70 self._Login(action_runner)
71 super(SystemHealthStory, self).RunNavigateSteps(action_runner) 71 super(SystemHealthStory, self).RunNavigateSteps(action_runner)
72 72
73 def RunPageInteractions(self, action_runner): 73 def RunPageInteractions(self, action_runner):
74 action_runner.tab.WaitForDocumentReadyStateToBeComplete() 74 action_runner.tab.WaitForDocumentReadyStateToBeComplete()
75 self._DidLoadDocument(action_runner) 75 self._DidLoadDocument(action_runner)
76 self._Measure(action_runner) 76 self._Measure(action_runner)
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698