Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(46)

Unified Diff: telemetry/telemetry/web_perf/timeline_based_measurement.py

Issue 2804473002: Rough prototype of deferred TBM results processing.
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « telemetry/telemetry/internal/results/story_run.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: telemetry/telemetry/web_perf/timeline_based_measurement.py
diff --git a/telemetry/telemetry/web_perf/timeline_based_measurement.py b/telemetry/telemetry/web_perf/timeline_based_measurement.py
index 961ed9120e26de4bd13871c5ed8522fe83e4c61a..11e36b1f9a930892d6eb3b48ef6703592c03ceea 100644
--- a/telemetry/telemetry/web_perf/timeline_based_measurement.py
+++ b/telemetry/telemetry/web_perf/timeline_based_measurement.py
@@ -4,6 +4,7 @@
import collections
import logging
from collections import defaultdict
+import threading
from tracing.metrics import metric_runner
@@ -73,7 +74,7 @@ class ResultsWrapperInterface(object):
@property
def current_page(self):
- return self._results.current_page
+ return self._results.story
def AddValue(self, value):
raise NotImplementedError
@@ -284,31 +285,44 @@ class TimelineBasedMeasurement(story_test.StoryTest):
chrome_config.category_filter.AddIncludedCategory('blink.console')
platform.tracing_controller.StartTracing(self._tbm_options.config)
- def Measure(self, platform, results):
- """Collect all possible metrics and added them to results."""
- platform.tracing_controller.telemetry_info = results.telemetry_info
- trace_result = platform.tracing_controller.StopTracing()
- trace_value = trace.TraceValue(results.current_page, trace_result)
- results.AddValue(trace_value)
+ def MeasureWorker(self, page_run, trace_result):
+ logging.warn('Running MeasureWorker for %s' % page_run.story.display_name)
+
+ trace_value = trace.TraceValue(page_run.story, trace_result)
+ page_run.AddValue(trace_value)
try:
if self._tbm_options.GetTimelineBasedMetrics():
assert not self._tbm_options.GetLegacyTimelineBasedMetrics(), (
'Specifying both TBMv1 and TBMv2 metrics is not allowed.')
- self._ComputeTimelineBasedMetrics(results, trace_value)
+ logging.warn('running _ComputeTimelineBasedMetrics')
+ self._ComputeTimelineBasedMetrics(page_run, trace_value)
else:
# Run all TBMv1 metrics if no other metric is specified
# (legacy behavior)
+ logging.warn('running legacy metrics')
if not self._tbm_options.GetLegacyTimelineBasedMetrics():
logging.warn('Please specify the TBMv1 metrics you are interested in '
'explicitly. This implicit functionality will be removed'
' on July 17, 2016.')
self._tbm_options.SetLegacyTimelineBasedMetrics(
_GetAllLegacyTimelineBasedMetrics())
- self._ComputeLegacyTimelineBasedMetrics(results, trace_result)
+ self._ComputeLegacyTimelineBasedMetrics(page_run, trace_result)
finally:
trace_result.CleanUpAllTraces()
+
+ def Measure(self, platform, results):
+ """Collect all possible metrics and added them to results."""
+ platform.tracing_controller.telemetry_info = results.telemetry_info
+ trace_result = platform.tracing_controller.StopTracing()
+
+ page_run = results.current_page_run
+ thread = threading.Thread(target=TimelineBasedMeasurement.MeasureWorker,
+ args=(self, page_run, trace_result,))
+ page_run.AddResultThread(thread)
+ thread.start()
+
def DidRunStory(self, platform):
"""Clean up after running the story."""
if platform.tracing_controller.is_tracing_running:
« no previous file with comments | « telemetry/telemetry/internal/results/story_run.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698