diff options
author | marja@chromium.org <marja@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-31 18:13:54 +0000 |
---|---|---|
committer | marja@chromium.org <marja@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-31 18:13:54 +0000 |
commit | ee57f33b13ab0f56982e854f3bce0e3229397f11 (patch) | |
tree | 8a32e293ef2e5a2fe28534dfb5d833bf7cb92180 /tools/perf | |
parent | e1c26ae78293ffa3ba6ee69a377be034d2d8cc8a (diff) | |
download | chromium_src-ee57f33b13ab0f56982e854f3bce0e3229397f11.zip chromium_src-ee57f33b13ab0f56982e854f3bce0e3229397f11.tar.gz chromium_src-ee57f33b13ab0f56982e854f3bce0e3229397f11.tar.bz2 |
Native memory histograms for the browser.
If a command line flag --memory-metrics is passed, the browser measures the
memory consumption after processing each task and puts the data to a histogram.
The histograms will be used in the memory_benchmark of Telemetry.
BUG=160979
Review URL: https://chromiumcodereview.appspot.com/11975048
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@179909 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools/perf')
-rw-r--r-- | tools/perf/perf_tools/memory_benchmark.py | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/tools/perf/perf_tools/memory_benchmark.py b/tools/perf/perf_tools/memory_benchmark.py index 0a1ebee..2740573 100644 --- a/tools/perf/perf_tools/memory_benchmark.py +++ b/tools/perf/perf_tools/memory_benchmark.py @@ -9,6 +9,9 @@ MEMORY_HISTOGRAMS = [ {'name': 'V8.MemoryHeapSampleTotalUsed', 'units': 'kb'}, {'name': 'Memory.RendererUsed', 'units': 'kb'}] +BROWSER_MEMORY_HISTOGRAMS = [ + {'name': 'Memory.BrowserUsed', 'units': 'kb'}] + class MemoryBenchmark(multi_page_benchmark.MultiPageBenchmark): def __init__(self): super(MemoryBenchmark, self).__init__('stress_memory') @@ -29,10 +32,17 @@ class MemoryBenchmark(multi_page_benchmark.MultiPageBenchmark): def MeasurePage(self, page, tab, results): for histogram in MEMORY_HISTOGRAMS: - name = histogram['name'] - data = tab.EvaluateJavaScript( - 'window.domAutomationController.getHistogram ? ' - 'window.domAutomationController.getHistogram("%s") : ""' % name) - if data: - results.Add(name.replace('.', '_'), histogram['units'], data, - data_type='histogram') + self._GetHistogramFromDomAutomation(tab, 'getHistogram', histogram, + results) + for histogram in BROWSER_MEMORY_HISTOGRAMS: + self._GetHistogramFromDomAutomation(tab, 'getBrowserHistogram', histogram, + results) + + def _GetHistogramFromDomAutomation(self, tab, func, histogram, results): + name = histogram['name'] + js = ('window.domAutomationController.%s ? ' + 'window.domAutomationController.%s("%s") : ""' % (func, func, name)) + data = tab.EvaluateJavaScript(js) + if data: + results.Add(name.replace('.', '_'), histogram['units'], data, + data_type='histogram') |