Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. | |
| 2 # Use of this source code is governed by a BSD-style license that can be | |
| 3 # found in the LICENSE file. | |
| 4 | |
| 5 import page_sets | |
| 6 from core import perf_benchmark | |
| 7 from telemetry import benchmark | |
| 8 from telemetry.timeline import tracing_category_filter | |
| 9 from telemetry.web_perf import timeline_based_measurement | |
| 10 from telemetry.web_perf.metrics import startup | |
| 11 from metrics import keychain_metric | |
| 12 | |
| 13 | |
| 14 class _StartWithUrlTBM(perf_benchmark.PerfBenchmark): | |
| 15 page_set = page_sets.StartupPagesPageSetTBM | |
| 16 | |
| 17 @classmethod | |
| 18 def Name(cls): | |
| 19 # TODO(gabadie): We don't want to replace start_with_url.* yet. | |
| 20 return 'start_with_url2.startup_pages' | |
| 21 | |
| 22 def SetExtraBrowserOptions(self, options): | |
| 23 options.AppendExtraBrowserArgs([ | |
| 24 '--enable-stats-collection-bindings' | |
| 25 ]) | |
| 26 keychain_metric.KeychainMetric.CustomizeBrowserOptions(options) | |
|
eakuefner
2015/11/17 16:51:52
You probably don't need this since you're not coll
gabadie
2015/11/17 18:14:23
Done.
| |
| 27 | |
| 28 def CreateTimelineBasedMeasurementOptions(self): | |
| 29 startup_category_filter = tracing_category_filter.TracingCategoryFilter( | |
| 30 filter_string='startup,blink.user_timing') | |
| 31 options = timeline_based_measurement.Options( | |
| 32 overhead_level=startup_category_filter) | |
| 33 options.SetTimelineBasedMetrics( | |
| 34 [startup.StartupTimelineMetric()]) | |
| 35 return options | |
| 36 | |
| 37 | |
| 38 @benchmark.Enabled('has tabs') | |
| 39 @benchmark.Enabled('android') | |
| 40 @benchmark.Disabled('chromeos', 'linux', 'mac', 'win') | |
| 41 class StartWithUrlColdTBM(_StartWithUrlTBM): | |
| 42 """Measure time to start Chrome cold with startup URLs""" | |
| 43 options = {'pageset_repeat': 5} | |
| 44 | |
| 45 def SetExtraBrowserOptions(self, options): | |
| 46 options.clear_sytem_cache_for_browser_and_profile_on_start = True | |
| 47 super(StartWithUrlColdTBM, self).SetExtraBrowserOptions(options) | |
| 48 | |
| 49 @classmethod | |
| 50 def Name(cls): | |
| 51 return 'start_with_url2.cold.startup_pages' | |
| 52 | |
| 53 | |
| 54 @benchmark.Enabled('has tabs') | |
| 55 @benchmark.Enabled('android') | |
| 56 @benchmark.Disabled('chromeos', 'linux', 'mac', 'win') | |
| 57 class StartWithUrlWarmTBM(_StartWithUrlTBM): | |
| 58 """Measure time to start Chrome warm with startup URLs""" | |
| 59 options = {'pageset_repeat': 10} | |
| 60 | |
| 61 @classmethod | |
| 62 def Name(cls): | |
| 63 return 'start_with_url2.warm.startup_pages' | |
| 64 | |
| 65 # TODO(gabadie): Uncomment this method and pageset_repeat++. This a current | |
|
eakuefner
2015/11/17 16:51:52
Please don't leave commented code in your CL like
gabadie
2015/11/17 18:14:23
Done. Created crbug.com/557242.
| |
| 66 # bug discovered in start_with_url where the results in the first page set | |
| 67 # iterations are actually cold because the profile was empty. However we | |
| 68 # don't want to fix right now because we want to make sure first that | |
| 69 # start_with_url2.* have same values as start_with_url.* before fixing this | |
| 70 # bug (pasko@chromium.org). | |
| 71 # @classmethod | |
| 72 # def ValueCanBeAddedPredicate(cls, _, is_first_result): | |
| 73 # # Ignores first results because the first invocation is actualy cold since | |
| 74 # # we are loading the profile for the first time. | |
| 75 # return not is_first_result | |
| OLD | NEW |