| Index: tools/perf/benchmarks/oortonline.py
|
| diff --git a/tools/perf/benchmarks/oortonline.py b/tools/perf/benchmarks/oortonline.py
|
| index 216007f9a57ca3f9da65e615ade0224493e32908..f5c46a543b822d3df230c37306df70e63cb53f70 100644
|
| --- a/tools/perf/benchmarks/oortonline.py
|
| +++ b/tools/perf/benchmarks/oortonline.py
|
| @@ -9,6 +9,12 @@ from telemetry import benchmark
|
| from telemetry.page import page_test
|
| from telemetry.value import scalar
|
| from telemetry.value import improvement_direction
|
| +from telemetry.timeline import tracing_category_filter
|
| +from telemetry.web_perf import timeline_based_measurement
|
| +from telemetry.web_perf.metrics import v8_gc_latency
|
| +from telemetry.web_perf.metrics import smoothness
|
| +from telemetry.web_perf.metrics import memory_timeline
|
| +
|
|
|
| class _OortOnlineMeasurement(page_test.PageTest):
|
| def __init__(self):
|
| @@ -38,3 +44,54 @@ class OortOnline(perf_benchmark.PerfBenchmark):
|
|
|
| def CreateStorySet(self, options):
|
| return page_sets.OortOnlinePageSet()
|
| +
|
| +
|
| +# Disabled on reference builds because they don't support the new
|
| +# Tracing.requestMemoryDump DevTools API. See http://crbug.com/540022.
|
| +@benchmark.Disabled('reference')
|
| +@benchmark.Disabled('android')
|
| +class OortOnlineTBM(perf_benchmark.PerfBenchmark):
|
| + """OortOnline benchmark that measures WebGL and V8 performance.
|
| + URL: http://oortonline.gl/#run
|
| + Info: http://v8project.blogspot.de/2015/10/jank-busters-part-one.html
|
| + """
|
| +
|
| + def SetExtraBrowserOptions(self, options):
|
| + options.AppendExtraBrowserArgs([
|
| + # TODO(perezju): Temporary workaround to disable periodic memory dumps.
|
| + # See: http://crbug.com/513692
|
| + '--enable-memory-benchmarking',
|
| + # TODO(ssid): Remove this flag after fixing http://crbug.com/461788.
|
| + '--no-sandbox'
|
| + ])
|
| +
|
| + def CreateStorySet(self, options):
|
| + return page_sets.OortOnlineTBMPageSet()
|
| +
|
| + def CreateTimelineBasedMeasurementOptions(self):
|
| + v8_gc_latency_categories = [
|
| + 'blink.console', 'renderer.scheduler', 'v8', 'webkit.console']
|
| + smoothness_categories = [
|
| + 'webkit.console', 'blink.console', 'benchmark', 'trace_event_overhead']
|
| + categories = list(set(v8_gc_latency_categories + smoothness_categories))
|
| + memory_categories = 'blink.console,disabled-by-default-memory-infra'
|
| + category_filter = tracing_category_filter.TracingCategoryFilter(
|
| + memory_categories)
|
| + for category in categories:
|
| + category_filter.AddIncludedCategory(category)
|
| + options = timeline_based_measurement.Options(category_filter)
|
| + options.SetTimelineBasedMetrics([v8_gc_latency.V8GCLatency(),
|
| + smoothness.SmoothnessMetric(),
|
| + memory_timeline.MemoryTimelineMetric()])
|
| + return options
|
| +
|
| + @classmethod
|
| + def Name(cls):
|
| + return 'oortonline_tbm'
|
| +
|
| + @classmethod
|
| + def ValueCanBeAddedPredicate(cls, value, is_first_result):
|
| + if value.tir_label in ['Begin', 'End']:
|
| + return value.name.startswith('memory_') and 'v8_renderer' in value.name
|
| + else:
|
| + return value.tir_label == 'Running'
|
|
|