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

Side by Side Diff: tools/perf/perf_tools/memory_measurement.py

Issue 12389073: Collect tab timing information for use in telementry-based startup tests (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix telemetry tests with reference builds. Created 7 years, 6 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 | Annotate | Revision Log
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 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 from perf_tools import histogram_metric 4 from perf_tools import histogram_metric
5 from telemetry.page import page_measurement 5 from telemetry.page import page_measurement
6 6
7 MEMORY_HISTOGRAMS = [ 7 MEMORY_HISTOGRAMS = [
8 {'name': 'V8.MemoryExternalFragmentationTotal', 'units': 'percent'}, 8 {'name': 'V8.MemoryExternalFragmentationTotal', 'units': 'percent'},
9 {'name': 'V8.MemoryHeapSampleTotalCommitted', 'units': 'kb'}, 9 {'name': 'V8.MemoryHeapSampleTotalCommitted', 'units': 'kb'},
10 {'name': 'V8.MemoryHeapSampleTotalUsed', 'units': 'kb'}, 10 {'name': 'V8.MemoryHeapSampleTotalUsed', 'units': 'kb'},
(...skipping 11 matching lines...) Expand all
22 for h in MEMORY_HISTOGRAMS] + 22 for h in MEMORY_HISTOGRAMS] +
23 [histogram_metric.HistogramMetric( 23 [histogram_metric.HistogramMetric(
24 h, histogram_metric.BROWSER_HISTOGRAM) 24 h, histogram_metric.BROWSER_HISTOGRAM)
25 for h in BROWSER_MEMORY_HISTOGRAMS]) 25 for h in BROWSER_MEMORY_HISTOGRAMS])
26 26
27 def DidNavigateToPage(self, page, tab): 27 def DidNavigateToPage(self, page, tab):
28 for h in self.histograms: 28 for h in self.histograms:
29 h.Start(page, tab) 29 h.Start(page, tab)
30 30
31 def CustomizeBrowserOptions(self, options): 31 def CustomizeBrowserOptions(self, options):
32 options.AppendExtraBrowserArg('--dom-automation') 32 options.AppendExtraBrowserArg('--enable-stats-collection-bindings')
33 # For a hard-coded set of Google pages (such as GMail), we produce custom 33 # For a hard-coded set of Google pages (such as GMail), we produce custom
34 # memory histograms (V8.Something_gmail) instead of the generic histograms 34 # memory histograms (V8.Something_gmail) instead of the generic histograms
35 # (V8.Something), if we detect that a renderer is only rendering this page 35 # (V8.Something), if we detect that a renderer is only rendering this page
36 # and no other pages. For this test, we need to disable histogram 36 # and no other pages. For this test, we need to disable histogram
37 # customizing, so that we get the same generic histograms produced for all 37 # customizing, so that we get the same generic histograms produced for all
38 # pages. 38 # pages.
39 options.AppendExtraBrowserArg('--disable-histogram-customizer') 39 options.AppendExtraBrowserArg('--disable-histogram-customizer')
40 options.AppendExtraBrowserArg('--memory-metrics') 40 options.AppendExtraBrowserArg('--memory-metrics')
41 options.AppendExtraBrowserArg('--reduce-security-for-dom-automation-tests') 41 options.AppendExtraBrowserArg(
42 '--reduce-security-for-stats-collection-tests')
43
44 # Old commandline flags used for reference builds.
45 options.AppendExtraBrowserArg('--dom-automation')
46 options.AppendExtraBrowserArg(
47 '--reduce-security-for-dom-automation-tests')
42 48
43 def CanRunForPage(self, page): 49 def CanRunForPage(self, page):
44 return hasattr(page, 'stress_memory') 50 return hasattr(page, 'stress_memory')
45 51
46 def MeasurePage(self, page, tab, results): 52 def MeasurePage(self, page, tab, results):
47 for h in self.histograms: 53 for h in self.histograms:
48 h.GetValue(page, tab, results) 54 h.GetValue(page, tab, results)
49 55
50 if tab.browser.is_profiler_active('tcmalloc-heap'): 56 if tab.browser.is_profiler_active('tcmalloc-heap'):
51 # The tcmalloc_heap_profiler dumps files at regular 57 # The tcmalloc_heap_profiler dumps files at regular
52 # intervals (~20 secs). 58 # intervals (~20 secs).
53 # This is a minor optimization to ensure it'll dump the last file when 59 # This is a minor optimization to ensure it'll dump the last file when
54 # the test completes. 60 # the test completes.
55 tab.ExecuteJavaScript(""" 61 tab.ExecuteJavaScript("""
56 if (chrome && chrome.memoryBenchmarking) { 62 if (chrome && chrome.memoryBenchmarking) {
57 chrome.memoryBenchmarking.heapProfilerDump('final', 'renderer'); 63 chrome.memoryBenchmarking.heapProfilerDump('final', 'renderer');
58 chrome.memoryBenchmarking.heapProfilerDump('final', 'browser'); 64 chrome.memoryBenchmarking.heapProfilerDump('final', 'browser');
59 } 65 }
60 """) 66 """)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698