Index: tools/perf/benchmarks/blink_perf.py |
diff --git a/tools/perf/benchmarks/blink_perf.py b/tools/perf/benchmarks/blink_perf.py |
index 413735ee15276aebe24a047741c5e8143a6eb535..ad5fe9bd134485d0fda56bf7119b15f0f7709a8f 100644 |
--- a/tools/perf/benchmarks/blink_perf.py |
+++ b/tools/perf/benchmarks/blink_perf.py |
@@ -7,6 +7,8 @@ import os |
from core import path_util |
from core import perf_benchmark |
+from page_sets import webgl_supported_shared_state |
+ |
from telemetry import benchmark |
from telemetry import page as page_module |
from telemetry.page import legacy_page_test |
@@ -17,14 +19,9 @@ from telemetry.timeline import model as model_module |
from telemetry.timeline import tracing_config |
from telemetry.value import list_of_scalar_values |
-from telemetry.value import scalar |
from telemetry.value import trace |
-from measurements import timeline_controller |
-from page_sets import webgl_supported_shared_state |
- |
- |
BLINK_PERF_BASE_DIR = os.path.join(path_util.GetChromiumSrcDir(), |
'third_party', 'WebKit', 'PerformanceTests') |
SKIPPED_FILE = os.path.join(BLINK_PERF_BASE_DIR, 'Skipped') |
@@ -139,6 +136,8 @@ def _ComputeTraceEventsThreadTimeForBlinkPerf( |
class _BlinkPerfMeasurement(legacy_page_test.LegacyPageTest): |
"""Tuns a blink performance test and reports the results.""" |
+ trace_event_to_metric_map = {} |
+ |
def __init__(self): |
super(_BlinkPerfMeasurement, self).__init__() |
with open(os.path.join(os.path.dirname(__file__), |
@@ -198,8 +197,12 @@ class _BlinkPerfMeasurement(legacy_page_test.LegacyPageTest): |
if cpu_times: |
avg = sum(cpu_times)/len(cpu_times) |
print 'avg', '{0:.10f}'.format(avg), unit |
+ if self.trace_event_to_metric_map: |
+ metric_name = self.trace_event_to_metric_map[trace_event_name] |
+ else: |
+ metric_name = trace_event_name |
results.AddValue(list_of_scalar_values.ListOfScalarValues( |
- results.current_page, name=trace_event_name, units=unit, |
+ results.current_page, name=metric_name, units=unit, |
values=cpu_times)) |
print '\n' |
@@ -242,48 +245,6 @@ class _BlinkPerfMeasurement(legacy_page_test.LegacyPageTest): |
self.PrintAndCollectTraceEventMetrics(trace_cpu_time_metrics, results) |
-# TODO(wangxianzhu): Convert the paint benchmarks to use the new blink_perf |
-# tracing once it's ready. |
-class _BlinkPerfPaintMeasurement(_BlinkPerfMeasurement): |
- """Also collects prePaint and paint timing from traces.""" |
- |
- def __init__(self): |
- super(_BlinkPerfPaintMeasurement, self).__init__() |
- self._controller = None |
- |
- def WillNavigateToPage(self, page, tab): |
- super(_BlinkPerfPaintMeasurement, self).WillNavigateToPage(page, tab) |
- self._controller = timeline_controller.TimelineController() |
- self._controller.trace_categories = 'blink,blink.console' |
- self._controller.SetUp(page, tab) |
- self._controller.Start(tab) |
- |
- def DidRunPage(self, platform): |
- if self._controller: |
- self._controller.CleanUp(platform) |
- |
- def ValidateAndMeasurePage(self, page, tab, results): |
- super(_BlinkPerfPaintMeasurement, self).ValidateAndMeasurePage( |
- page, tab, results) |
- self._controller.Stop(tab, results) |
- renderer = self._controller.model.GetRendererThreadFromTabId(tab.id) |
- # The marker marks the beginning and ending of the measured runs. |
- marker = next(event for event in renderer.async_slices |
- if event.name == 'blink_perf' |
- and event.category == 'blink.console') |
- assert marker |
- |
- for event in renderer.all_slices: |
- if event.start < marker.start or event.end > marker.end: |
- continue |
- if event.name == 'FrameView::prePaint': |
- results.AddValue( |
- scalar.ScalarValue(page, 'prePaint', 'ms', event.duration)) |
- if event.name == 'FrameView::paintTree': |
- results.AddValue( |
- scalar.ScalarValue(page, 'paint', 'ms', event.duration)) |
- |
- |
class _BlinkPerfBenchmark(perf_benchmark.PerfBenchmark): |
test = _BlinkPerfMeasurement |
@@ -377,7 +338,13 @@ class BlinkPerfLayout(_BlinkPerfBenchmark): |
@benchmark.Owner(emails=['wangxianzhu@chromium.org']) |
class BlinkPerfPaint(_BlinkPerfBenchmark): |
- test = _BlinkPerfPaintMeasurement |
+ class _PaintMeasurement(_BlinkPerfMeasurement): |
+ trace_event_to_metric_map = { |
+ 'FrameView::prePaint' : 'prePaint', |
nednguyen
2017/05/12 21:45:30
Besides the data continuity problem, do you think
|
+ 'FrameView::paintTree' : 'paint', |
+ } |
+ |
+ test = _PaintMeasurement |
tag = 'paint' |
subdir = 'Paint' |