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

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

Issue 23112028: [Telemetry] Add support for capturing V8 object stats to Telemetry. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@stats_table_android
Patch Set: Sync Created 7 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/renderer/benchmarking_extension.cc ('k') | tools/perf/metrics/v8_object_stats.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 9e18706823e6d6100c21c01d41ed80c0cffcfdca..2e4e39c5a4a8aff429d33035f3cd37ed080d8458 100644
--- a/tools/perf/measurements/page_cycler.py
+++ b/tools/perf/measurements/page_cycler.py
@@ -21,6 +21,7 @@ import sys
from metrics import io
from metrics import memory
+from metrics import v8_object_stats
from telemetry.core import util
from telemetry.page import page_measurement
@@ -32,7 +33,10 @@ class PageCycler(page_measurement.PageMeasurement):
'page_cycler.js'), 'r') as f:
self._page_cycler_js = f.read()
+ self._record_v8_object_stats = False
+
self._memory_metric = None
+ self._v8_object_stats_metric = None
self._number_warm_runs = None
self._cold_runs_requested = False
self._has_loaded_page = collections.defaultdict(int)
@@ -46,12 +50,19 @@ class PageCycler(page_measurement.PageMeasurement):
parser.remove_option('--pageset-repeat')
parser.add_option(pageset_repeat_option)
+ parser.add_option('--v8-object-stats',
+ action='store_true',
+ help='Enable detailed V8 object statistics.')
+
parser.add_option('--cold-load-percent', type='int', default=0,
help='%d of page visits for which a cold load is forced')
+
def DidStartBrowser(self, browser):
"""Initialize metrics once right after the browser has been launched."""
self._memory_metric = memory.MemoryMetric(browser)
+ if self._record_v8_object_stats:
+ self._v8_object_stats_metric = v8_object_stats.V8ObjectStatsMetric()
def DidStartHTTPServer(self, tab):
# Avoid paying for a cross-renderer navigation on the first page on legacy
@@ -65,12 +76,18 @@ class PageCycler(page_measurement.PageMeasurement):
def DidNavigateToPage(self, page, tab):
self._memory_metric.Start(page, tab)
+ if self._record_v8_object_stats:
+ self._v8_object_stats_metric.Start(page, tab)
def CustomizeBrowserOptions(self, options):
memory.MemoryMetric.CustomizeBrowserOptions(options)
io.IOMetric.CustomizeBrowserOptions(options)
options.AppendExtraBrowserArg('--js-flags=--expose_gc')
+ if options.v8_object_stats:
+ self._record_v8_object_stats = True
+ v8_object_stats.V8ObjectStatsMetric.CustomizeBrowserOptions(options)
+
# A disk cache bug causes some page cyclers to hang on mac.
# TODO(tonyg): Re-enable these tests when crbug.com/268646 is fixed.
if (sys.platform == 'darwin' and
@@ -121,6 +138,9 @@ class PageCycler(page_measurement.PageMeasurement):
self._memory_metric.Stop(page, tab)
self._memory_metric.AddResults(tab, results)
+ if self._record_v8_object_stats:
+ self._v8_object_stats_metric.Stop(page, tab)
+ self._v8_object_stats_metric.AddResults(tab, results)
def DidRunTest(self, tab, results):
self._memory_metric.AddSummaryResults(results)
« no previous file with comments | « chrome/renderer/benchmarking_extension.cc ('k') | tools/perf/metrics/v8_object_stats.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698