Commit b6ae0443 authored by cmumford@chromium.org's avatar cmumford@chromium.org

Added memory and V8 metrics to indexeddb_perf results

We are trying to deprecate the page_cycler.indexeddb performance test.
One of the things done by that test and not indexeddb_perf is the
measurement of V8 memory statistics. This change brings V8 stats
into indexeddb_perf - but only a subset of the full measurements.
Opted for a smaller subset as the full set has too much unrelated
stuff, and we really want to catch things like unreleased objects,
etc.

Review URL: https://codereview.chromium.org/123553003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244054 0039d316-1c4b-4281-b951-d872f2087c98
parent 6b911a3b
......@@ -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."""
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment