summaryrefslogtreecommitdiffstats
path: root/tools/perf
diff options
context:
space:
mode:
authormarja@chromium.org <marja@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-31 18:13:54 +0000
committermarja@chromium.org <marja@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-31 18:13:54 +0000
commitee57f33b13ab0f56982e854f3bce0e3229397f11 (patch)
tree8a32e293ef2e5a2fe28534dfb5d833bf7cb92180 /tools/perf
parente1c26ae78293ffa3ba6ee69a377be034d2d8cc8a (diff)
downloadchromium_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.py24
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')