Index: tools/perf/benchmarks/indexeddb_perf.py |
diff --git a/tools/perf/benchmarks/indexeddb_perf.py b/tools/perf/benchmarks/indexeddb_perf.py |
index 8cf33e5d398b6b9cb40dc27f9ddab1dcd73e7680..b2ad0b31e51f05c650b20752ab77dd851cca6251 100644 |
--- a/tools/perf/benchmarks/indexeddb_perf.py |
+++ b/tools/perf/benchmarks/indexeddb_perf.py |
@@ -23,18 +23,44 @@ Cursors: |
import json |
import os |
+from metrics import memory |
+from metrics import v8_object_stats |
from telemetry import test |
from telemetry.core import util |
from telemetry.page import page_measurement |
from telemetry.page import page_set |
+_V8_COUNTER_NAMES = [ |
+ 'V8.OsMemoryAllocated', |
+ ] |
class _IndexedDbMeasurement(page_measurement.PageMeasurement): |
- def MeasurePage(self, _, tab, results): |
+ def __init__(self, *args, **kwargs): |
+ super(_IndexedDbMeasurement, self).__init__(*args, **kwargs) |
+ self._memory_metric = None |
+ self._v8_object_stats_metric = None |
+ |
+ def DidStartBrowser(self, browser): |
+ """Initialize metrics once right after the browser has been launched.""" |
+ self._memory_metric = memory.MemoryMetric(browser) |
+ self._v8_object_stats_metric = \ |
+ v8_object_stats.V8ObjectStatsMetric(_V8_COUNTER_NAMES) |
+ |
+ def DidNavigateToPage(self, page, tab): |
+ self._memory_metric.Start(page, tab) |
+ self._v8_object_stats_metric.Start(page, tab) |
+ |
+ def MeasurePage(self, page, tab, results): |
tab.WaitForDocumentReadyStateToBeComplete() |
tab.WaitForJavaScriptExpression( |
'window.document.cookie.indexOf("__done=1") >= 0', 600) |
+ self._memory_metric.Stop(page, tab) |
+ self._v8_object_stats_metric.Stop(page, tab) |
+ |
+ self._memory_metric.AddResults(tab, results) |
+ self._v8_object_stats_metric.AddResults(tab, results) |
+ |
js_get_results = "JSON.stringify(automation.getResults());" |
result_dict = json.loads(tab.EvaluateJavaScript(js_get_results)) |
total = 0.0 |
@@ -44,7 +70,11 @@ class _IndexedDbMeasurement(page_measurement.PageMeasurement): |
msec = float(result_dict[key]) |
results.Add(key, 'ms', msec, data_type='unimportant') |
total += msec |
- results.Add('Total', 'ms', total) |
+ results.Add('Total Perf', 'ms', total) |
+ |
+ def CustomizeBrowserOptions(self, options): |
+ memory.MemoryMetric.CustomizeBrowserOptions(options) |
+ v8_object_stats.V8ObjectStatsMetric.CustomizeBrowserOptions(options) |
class IndexedDb(test.Test): |
"""Chromium's IndexedDB Performance tests.""" |