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' |