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

Unified Diff: tools/perf/measurements/page_cycler.py

Issue 57863002: Update page cycler to differenciate between cold and warm run by default. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Adding unit test Created 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | tools/perf/measurements/page_cycler_unittest.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/perf/measurements/page_cycler.py
diff --git a/tools/perf/measurements/page_cycler.py b/tools/perf/measurements/page_cycler.py
index a0fdc470b7d0bc5c3633201e8c27e223142ded2e..5b5204e383e6d27ce24a4fa852ed16f1f7dbeab8 100644
--- a/tools/perf/measurements/page_cycler.py
+++ b/tools/perf/measurements/page_cycler.py
@@ -41,8 +41,6 @@ class PageCycler(page_measurement.PageMeasurement):
self._memory_metric = None
self._cpu_metric = None
self._v8_object_stats_metric = None
- self._number_warm_runs = None
- self._cold_runs_requested = False
self._cold_run_start_index = None
self._has_loaded_page = collections.defaultdict(int)
@@ -116,39 +114,39 @@ class PageCycler(page_measurement.PageMeasurement):
print '%s is currently disabled on mac. Skipping test.' % sys.argv[-1]
sys.exit(0)
- self._cold_runs_requested = (options.cold_load_percent != None)
+ cold_runs_percent_set = (options.cold_load_percent != None)
# Handle requests for cold cache runs
- if (self._cold_runs_requested and
+ if (cold_runs_percent_set and
(options.repeat_options.page_repeat_secs or
options.repeat_options.pageset_repeat_secs)):
raise Exception('--cold-load-percent is incompatible with timed repeat')
- if (self._cold_runs_requested and
+ if (cold_runs_percent_set and
(options.cold_load_percent < 0 or options.cold_load_percent > 100)):
raise Exception('--cold-load-percent must be in the range [0-100]')
- # TODO(rdsmith): Properly handle interaction of page_repeat with
- # dropping the first run.
- number_warm_pageset_runs = int(
- (int(options.repeat_options.pageset_repeat_iters) - 1) *
- (100 - int(options.cold_load_percent or 0)) / 100)
-
- # Make sure _number_cold_runs is an integer multiple of page_repeat.
+ # Make sure _cold_run_start_index is an integer multiple of page_repeat.
# Without this, --pageset_shuffle + --page_repeat could lead to
# assertion failures on _started_warm in WillNavigateToPage.
- self._number_warm_runs = (number_warm_pageset_runs *
- options.repeat_options.page_repeat_iters)
- self._cold_run_start_index = (self._number_warm_runs +
- options.repeat_options.page_repeat_iters)
- self.discard_first_result = ((self._cold_runs_requested and
- not options.cold_load_percent) or
- self.discard_first_result)
+ if cold_runs_percent_set:
+ number_warm_pageset_runs = int(
+ (int(options.repeat_options.pageset_repeat_iters) - 1) *
+ (100 - options.cold_load_percent) / 100)
+ number_warm_runs = (number_warm_pageset_runs *
+ options.repeat_options.page_repeat_iters)
+ self._cold_run_start_index = (number_warm_runs +
+ options.repeat_options.page_repeat_iters)
+ self.discard_first_result = (not options.cold_load_percent or
+ self.discard_first_result)
+ else:
+ self._cold_run_start_index = (
+ options.repeat_options.pageset_repeat_iters *
+ options.repeat_options.page_repeat_iters)
def MeasurePage(self, page, tab, results):
tab.WaitForJavaScriptExpression('__pc_load_time', 60)
- chart_name_prefix = ('' if not self._cold_runs_requested else
- 'cold_' if self.IsRunCold(page.url) else
+ chart_name_prefix = ('cold_' if self.IsRunCold(page.url) else
'warm_')
results.Add('page_load_time', 'ms',
@@ -181,8 +179,7 @@ class PageCycler(page_measurement.PageMeasurement):
def IsRunCold(self, url):
return (self.ShouldRunCold(url) or
- (self._cold_runs_requested and
- self._has_loaded_page[url] == 0))
+ self._has_loaded_page[url] == 0)
def ShouldRunCold(self, url):
# We do the warm runs first for two reasons. The first is so we can
@@ -192,8 +189,7 @@ class PageCycler(page_measurement.PageMeasurement):
# contribute to the cold data and warm the catch for the following
# warm run, and clearing the cache before the load of the following
# URL would eliminate the intended warmup for the previous URL.
- return (self._cold_runs_requested and
- self._has_loaded_page[url] >= self._cold_run_start_index)
+ return (self._has_loaded_page[url] >= self._cold_run_start_index)
def results_are_the_same_on_every_page(self):
- return not self._cold_runs_requested
+ return False
« no previous file with comments | « no previous file | tools/perf/measurements/page_cycler_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698