summaryrefslogtreecommitdiffstats
path: root/tools/perf
diff options
context:
space:
mode:
authornednguyen@google.com <nednguyen@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-20 00:27:52 +0000
committernednguyen@google.com <nednguyen@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-20 00:27:52 +0000
commita15daaa6cdb86f847519fad6477437497d99a260 (patch)
treeb707ff06ba775d99e898c94c5e7be9057a4d3ce4 /tools/perf
parentc2809346d25a645d175af044dc28c610fe8e099a (diff)
downloadchromium_src-a15daaa6cdb86f847519fad6477437497d99a260.zip
chromium_src-a15daaa6cdb86f847519fad6477437497d99a260.tar.gz
chromium_src-a15daaa6cdb86f847519fad6477437497d99a260.tar.bz2
Remove loading_timeline
NOTRY=True BUG= Review URL: https://codereview.chromium.org/198533005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@258170 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools/perf')
-rw-r--r--tools/perf/measurements/loading_measurement_analyzer_unittest.py20
-rw-r--r--tools/perf/measurements/loading_timeline.py31
-rw-r--r--tools/perf/measurements/loading_timeline_unittest.py20
-rw-r--r--tools/perf/measurements/loading_trace.py3
-rw-r--r--tools/perf/measurements/test_data/loading_timeline.csv10
-rw-r--r--tools/perf/metrics/timeline.py58
-rw-r--r--tools/perf/metrics/timeline_unittest.py4
7 files changed, 23 insertions, 123 deletions
diff --git a/tools/perf/measurements/loading_measurement_analyzer_unittest.py b/tools/perf/measurements/loading_measurement_analyzer_unittest.py
index a1fa296..26869b6 100644
--- a/tools/perf/measurements/loading_measurement_analyzer_unittest.py
+++ b/tools/perf/measurements/loading_measurement_analyzer_unittest.py
@@ -32,23 +32,3 @@ class LoadingMeasurementAnalyzerUnitTest(unittest.TestCase):
self.assertIn('WTF::IntHash::hash: 1359797948period 1.1%', output)
self.assertIn('WebCore::rangesIntersect: 648335678period 0.5%', output)
self.assertIn('v8::internal::Scanner::Scan: 19668346period 0.0', output)
-
- def testLoadingTimeline(self):
- output = StringIO.StringIO()
- csv_path = os.path.join(
- util.GetChromiumSrcDir(),
- 'tools', 'perf', 'measurements','test_data', 'loading_timeline.csv')
- loading_measurement_analyzer.main([csv_path], stdout=output)
- output = output.getvalue()
-
- # Get the summary right.
- self.assertIn('Total URLs: 9', output)
- self.assertIn('Total page load time: 4s', output)
- self.assertIn('Average page load time: 422ms', output)
- self.assertIn('Total CPU time: 4s', output)
- self.assertIn('Average CPU time: 430ms', output)
-
- # Spot check a few samples.
- self.assertIn('EvaluateScript: 0s 19.0%', output)
- self.assertIn('ParseHTML: 0s 9.4%', output)
- self.assertIn('GCEvent: 0s 3.7%', output)
diff --git a/tools/perf/measurements/loading_timeline.py b/tools/perf/measurements/loading_timeline.py
deleted file mode 100644
index 68889ef..0000000
--- a/tools/perf/measurements/loading_timeline.py
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright 2013 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-from metrics import timeline
-from metrics import loading
-from telemetry.page import page_measurement
-
-class LoadingTimeline(page_measurement.PageMeasurement):
- def __init__(self, *args, **kwargs):
- super(LoadingTimeline, self).__init__(*args, **kwargs)
- self._timeline_metric = timeline.LoadTimesTimelineMetric(
- timeline.TIMELINE_MODE)
-
- @property
- def results_are_the_same_on_every_page(self):
- return False
-
- def WillNavigateToPage(self, page, tab):
- self._timeline_metric.Start(page, tab)
-
- def MeasurePage(self, page, tab, results):
- # In current telemetry tests, all tests wait for DocumentComplete state,
- # but we need to wait for the load event.
- tab.WaitForJavaScriptExpression('performance.timing.loadEventStart', 300)
-
- # TODO(nduca): when crbug.com/168431 is fixed, modify the page sets to
- # recognize loading as a toplevel action.
- self._timeline_metric.Stop(page, tab)
-
- loading.LoadingMetric().AddResults(tab, results)
- self._timeline_metric.AddResults(tab, results)
diff --git a/tools/perf/measurements/loading_timeline_unittest.py b/tools/perf/measurements/loading_timeline_unittest.py
deleted file mode 100644
index 142736e..0000000
--- a/tools/perf/measurements/loading_timeline_unittest.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright 2014 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-from measurements import loading_timeline
-from telemetry.core import wpr_modes
-from telemetry.page import page_measurement_unittest_base
-from telemetry.unittest import options_for_unittests
-
-class LoadingTimelineUnitTest(
- page_measurement_unittest_base.PageMeasurementUnitTestBase):
- def setUp(self):
- self._options = options_for_unittests.GetCopy()
- self._options.browser_options.wpr_mode = wpr_modes.WPR_OFF
-
- def testLoadingTimelineBasic(self):
- ps = self.CreatePageSetFromFileInUnittestDataDir('scrollable_page.html')
- measurement = loading_timeline.LoadingTimeline()
- timeline_options = self._options
- results = self.RunMeasurement(measurement, ps, options = timeline_options)
- self.assertEquals(0, len(results.failures))
diff --git a/tools/perf/measurements/loading_trace.py b/tools/perf/measurements/loading_trace.py
index ed7b2f6..54af934 100644
--- a/tools/perf/measurements/loading_trace.py
+++ b/tools/perf/measurements/loading_trace.py
@@ -8,8 +8,7 @@ from telemetry.page import page_measurement
class LoadingTrace(page_measurement.PageMeasurement):
def __init__(self, *args, **kwargs):
super(LoadingTrace, self).__init__(*args, **kwargs)
- self._timeline_metric = timeline.LoadTimesTimelineMetric(
- timeline.TRACING_MODE)
+ self._timeline_metric = timeline.LoadTimesTimelineMetric()
@property
def results_are_the_same_on_every_page(self):
diff --git a/tools/perf/measurements/test_data/loading_timeline.csv b/tools/perf/measurements/test_data/loading_timeline.csv
deleted file mode 100644
index c62f2a2..0000000
--- a/tools/perf/measurements/test_data/loading_timeline.csv
+++ /dev/null
@@ -1,10 +0,0 @@
-CompositeLayers_avg (ms),ResizeImage (ms),Layout (ms),EvaluateScript (ms),ResourceReceivedData (ms),FireAnimationFrame_max (ms),EvaluateScript_avg (ms),Paint_max (ms),ResourceReceiveResponse (ms),ResizeImage_avg (ms),TimerFire_max (ms),Program_max (ms),XHRReadyStateChange (ms),ResourceReceivedData_avg (ms),DecodeImage_avg (ms),ResourceReceiveResponse_avg (ms),ParseHTML_avg (ms),Layout_avg (ms),XHRLoad_avg (ms),EventDispatch (ms),FireAnimationFrame_avg (ms),FunctionCall (ms),FireAnimationFrame (ms),RecalculateStyles_max (ms),ParseHTML_max (ms),PaintSetup_max (ms),dom_content_loaded_time (ms),CompositeLayers_max (ms),DecodeImage (ms),FunctionCall_avg (ms),FunctionCall_max (ms),ScrollLayer (ms),GCEvent_avg (ms),TimerFire_avg (ms),PaintSetup (ms),Layout_max (ms),Paint (ms),Program (ms),XHRLoad_max (ms),load_time (ms),RecalculateStyles (ms),ResourceReceiveResponse_max (ms),EventDispatch_max (ms),ScrollLayer_max (ms),EventDispatch_avg (ms),XHRReadyStateChange_avg (ms),RecalculateStyles_avg (ms),ResourceReceivedData_max (ms),GCEvent (ms),url,Paint_avg (ms),GCEvent_max (ms),XHRLoad (ms),PaintSetup_avg (ms),Program_avg (ms),ScrollLayer_avg (ms),DecodeImage_max (ms),CompositeLayers (ms),ParseHTML (ms),TimerFire (ms),ResizeImage_max (ms),XHRReadyStateChange_max (ms),EvaluateScript_max (ms)
-0.0,9.67211914062,74.990234375,102.824462891,20.4689941406,0.0,6.42652893066,8.82690429688,0.369873046875,1.93442382812,0.043212890625,2.44506835938,0.0,0.165072533392,1.03696076766,0.00672496448864,0.448876953125,2.88423978365,0.0,1.87133789062,0.0,16.7358398438,0.0,5.55297851562,8.67944335938,0.0,343.0,0.0,23.8500976562,0.278930664062,3.76123046875,0.0,1.07039388021,0.0315755208333,0.0,61.8430175781,52.1069335938,50.3095703125,0.0,355.0,13.6887207031,0.010986328125,0.18896484375,0.0,0.0693088107639,0.0,0.80521886489,13.45703125,3.21118164062,http://joniec.pl,3.25668334961,1.6279296875,0.0,0.0,0.0898385184152,0.0,9.787109375,0.0,15.7106933594,0.189453125,3.708984375,0.0,32.9047851562
-0.0,0.0,60.2717285156,86.1184082031,16.7585449219,0.0,7.82894620028,5.44482421875,0.28076171875,0.0,0.2900390625,6.43408203125,0.0,0.138500371255,0.518965871711,0.00501360212054,0.455252075195,1.33937174479,0.0,1.1005859375,0.0,104.036132812,0.0,10.3190917969,25.0598144531,0.0,282.0,0.0,9.8603515625,0.444598858173,55.0568847656,0.0,1.07751464844,0.0307851938101,0.0,32.0119628906,58.6887207031,60.5893554688,0.0,407.0,50.4760742188,0.010986328125,0.10205078125,0.0,0.0524088541667,0.0,0.327766715706,12.7951660156,4.31005859375,http://horecastyle.nl,2.0960257394,1.4130859375,0.0,0.0,0.0694832058128,0.0,3.34594726562,0.0,36.4201660156,6.4033203125,0.0,0.0,59.2209472656
-0.0,0.098876953125,94.2145996094,178.46484375,37.2844238281,0.0,6.60980902778,13.0551757812,0.159912109375,0.098876953125,0.1669921875,7.7001953125,0.0,0.621407063802,0.135064019097,0.00695270040761,0.482793280419,2.47933156867,0.0,0.641845703125,0.0,133.328125,0.0,6.75,28.1760253906,0.0,233.0,0.0,1.21557617188,7.40711805556,63.5759277344,0.0,1.86834716797,0.06396484375,0.0,59.6840820312,88.4216308594,42.271484375,0.0,542.0,23.703125,0.010009765625,0.27099609375,0.0,0.106974283854,0.0,0.464767156863,13.5078125,14.9467773438,http://aionarabic.net,2.76317596436,5.05615234375,0.0,0.0,0.112424160572,0.0,0.552001953125,0.0,45.3825683594,0.31982421875,0.098876953125,0.0,45.9221191406
-3.92171223958,9.00244140625,143.793945312,89.5949707031,18.7126464844,0.0,7.46624755859,5.33837890625,0.200927734375,4.50122070312,0.053955078125,10.9738769531,0.239013671875,0.283524946733,1.08168945313,0.00590963924632,1.58981323242,5.7517578125,0.0,0.306884765625,0.0,11.0261230469,0.0,121.806884766,15.7854003906,2.02099609375,129.0,10.1799316406,5.40844726562,1.22512478299,4.64501953125,0.0,1.08093261719,0.0463053385417,5.3564453125,93.5776367188,34.6059570312,53.7485351562,0.0,393.0,167.385253906,0.01611328125,0.23974609375,0.0,0.153442382812,0.0796712239583,5.57950846354,13.1740722656,2.16186523438,http://pennystockmaster.net,1.28170211227,1.14892578125,0.0,0.669555664062,0.146853921192,0.0,3.50830078125,11.7651367188,25.4370117188,0.138916015625,8.05126953125,0.179931640625,35.9499511719
-0.0,0.0,114.902099609,37.3405761719,44.8813476562,0.0,0.122028026705,5.52856445312,1.86303710938,0.0,0.14794921875,3.10595703125,0.0,0.0517066217238,0.453446237664,0.00602924630866,6.24307411595,8.83862304688,0.0,0.0,0.0,0.44287109375,0.0,21.9528808594,23.7131347656,0.0,273.0,0.0,8.61547851562,0.44287109375,0.44287109375,0.0,0.0,0.0164871976225,0.0,43.2739257812,23.775390625,171.98828125,0.0,1003.0,61.640625,0.01416015625,0.0,0.0,0.0,0.0,0.200131899351,13.0100097656,0.0,http://asiator.com,3.396484375,0.0,0.0,0.0,0.0484064962708,0.0,2.06396484375,0.0,118.618408203,4.96264648438,0.0,0.0,5.13623046875
-0.0,0.0,36.2736816406,0.5048828125,15.6623535156,0.0,0.5048828125,6.08471679688,0.06005859375,0.0,0.0,2.92529296875,0.0,0.489448547363,0.717041015625,0.0050048828125,2.22094726562,4.53421020508,0.0,0.0,0.0,0.435791015625,0.0,1.994140625,4.552734375,0.0,59.0,0.0,5.01928710938,0.435791015625,0.435791015625,0.0,0.0,0.0,0.0,33.1640625,17.9816894531,15.80859375,0.0,104.0,3.080078125,0.009033203125,0.0,0.0,0.0,0.0,0.77001953125,13.4809570312,0.0,http://plnunn.com,2.99694824219,0.0,0.0,0.0,0.102653206169,0.0,4.1279296875,0.0,8.8837890625,0.0,0.0,0.0,0.5048828125
-0.0,0.0,68.8752441406,226.928955078,62.7219238281,0.0,2.46661907694,6.42333984375,0.64697265625,0.0,0.311767578125,5.572265625,0.0,0.56506237683,0.337795681424,0.00735196200284,0.623560935074,0.782673228871,0.0,8.18090820312,0.0,185.92578125,0.0,6.35180664062,9.87109375,0.0,361.0,0.0,12.1606445312,0.628127639358,28.7446289062,0.0,9.53627522786,0.0359129802489,0.0,22.2741699219,28.0166015625,74.6743164062,0.0,840.0,26.4306640625,0.014892578125,0.867919921875,0.0,0.215287057977,0.0,0.191526551178,13.8371582031,114.435302734,http://triviacafe.com,0.311295572917,19.8920898438,0.0,0.0,0.0904047414119,0.0,2.81396484375,0.0,100.393310547,8.2958984375,0.0,0.0,42.8920898438
-0.0,0.0,4.33374023438,0.0,42.6137695312,0.0,0.0,2.7763671875,0.008056640625,0.0,0.0,3.53735351562,0.0,42.6137695312,0.0,0.008056640625,0.311889648438,0.333364633413,0.0,0.0,0.0,0.455810546875,0.0,0.2578125,0.560791015625,0.0,80.0,0.0,0.0,0.455810546875,0.455810546875,0.0,0.0,0.0,0.0,2.85498046875,15.8295898438,13.2143554688,0.0,80.0,0.490966796875,0.008056640625,0.0,0.0,0.0,0.0,0.163655598958,42.6137695312,0.0,http://mmm.co.uk,1.75884331597,0.0,0.0,0.0,0.167270322389,0.0,0.0,0.0,0.623779296875,0.0,0.0,0.0,0.0
-0.0,0.0,11.8352050781,0.296875,13.5771484375,0.0,0.296875,3.51196289062,0.02880859375,0.0,0.0,3.08984375,0.0,2.7154296875,0.385986328125,0.00960286458333,1.16162109375,1.07592773438,0.0,0.0,0.0,0.43798828125,0.0,0.44580078125,2.8779296875,0.0,55.0,0.0,0.77197265625,0.43798828125,0.43798828125,0.0,0.0,0.0,0.0,10.3369140625,16.1049804688,12.9384765625,0.0,70.0,0.861572265625,0.014892578125,0.0,0.0,0.0,0.0,0.215393066406,13.4321289062,0.0,http://wootw.com,2.30071149554,0.0,0.0,0.0,0.143760850694,0.0,0.640869140625,0.0,3.48486328125,0.0,0.0,0.0,0.296875
diff --git a/tools/perf/metrics/timeline.py b/tools/perf/metrics/timeline.py
index 89b1b7f..9d95455 100644
--- a/tools/perf/metrics/timeline.py
+++ b/tools/perf/metrics/timeline.py
@@ -9,9 +9,6 @@ from telemetry.core.timeline.model import TimelineModel
from telemetry.core.timeline import bounds
from telemetry.page import page_measurement
-TRACING_MODE = 'tracing-mode'
-TIMELINE_MODE = 'timeline-mode'
-
# All tracing categories not disabled-by-default
DEFAULT_TRACE_CATEGORIES = None
@@ -30,13 +27,11 @@ class MissingFramesError(page_measurement.MeasurementFailure):
class TimelineMetric(Metric):
- def __init__(self, mode):
+ def __init__(self):
""" Initializes a TimelineMetric object.
"""
super(TimelineMetric, self).__init__()
- assert mode in (TRACING_MODE, TIMELINE_MODE)
self.trace_categories = DEFAULT_TRACE_CATEGORIES
- self._mode = mode
self._model = None
self._renderer_process = None
self._actions = []
@@ -45,36 +40,26 @@ class TimelineMetric(Metric):
def Start(self, page, tab):
"""Starts gathering timeline data.
- mode: TRACING_MODE or TIMELINE_MODE
"""
self._model = None
- if self._mode == TRACING_MODE:
- if not tab.browser.supports_tracing:
- raise Exception('Not supported')
- if self.trace_categories:
- categories = [self.trace_categories] + \
- page.GetSyntheticDelayCategories()
- else:
- categories = page.GetSyntheticDelayCategories()
- tab.browser.StartTracing(','.join(categories))
+ if not tab.browser.supports_tracing:
+ raise Exception('Not supported')
+ if self.trace_categories:
+ categories = [self.trace_categories] + \
+ page.GetSyntheticDelayCategories()
else:
- assert self._mode == TIMELINE_MODE
- tab.StartTimelineRecording()
+ categories = page.GetSyntheticDelayCategories()
+ tab.browser.StartTracing(','.join(categories))
def Stop(self, page, tab):
- if self._mode == TRACING_MODE:
- timeline_data = tab.browser.StopTracing()
- self._model = TimelineModel(timeline_data)
- self._renderer_process = self._model.GetRendererProcessFromTab(tab)
- self._action_ranges = [ action.GetActiveRangeOnTimeline(self._model)
- for action in self._actions ]
- # Make sure no action ranges overlap
- for combo in itertools.combinations(self._action_ranges, 2):
- assert not combo[0].Intersects(combo[1])
- else:
- tab.StopTimelineRecording()
- self._model = tab.timeline_model
- self._renderer_process = self._model.GetAllProcesses()[0]
+ timeline_data = tab.browser.StopTracing()
+ self._model = TimelineModel(timeline_data)
+ self._renderer_process = self._model.GetRendererProcessFromTab(tab)
+ self._action_ranges = [ action.GetActiveRangeOnTimeline(self._model)
+ for action in self._actions ]
+ # Make sure no action ranges overlap
+ for combo in itertools.combinations(self._action_ranges, 2):
+ assert not combo[0].Intersects(combo[1])
def AddActionToIncludeInMetric(self, action):
self._actions.append(action)
@@ -100,17 +85,14 @@ class TimelineMetric(Metric):
class LoadTimesTimelineMetric(TimelineMetric):
- def __init__(self, mode):
- super(LoadTimesTimelineMetric, self).__init__(mode)
+ def __init__(self):
+ super(LoadTimesTimelineMetric, self).__init__()
self.report_main_thread_only = True
def AddResults(self, _, results):
assert self._model
if self.report_main_thread_only:
- if self._mode == TRACING_MODE:
- thread_filter = 'CrRendererMain'
- else:
- thread_filter = 'thread 0'
+ thread_filter = 'CrRendererMain'
else:
thread_filter = None
@@ -294,7 +276,7 @@ class ResultsForThread(object):
class ThreadTimesTimelineMetric(TimelineMetric):
def __init__(self):
- super(ThreadTimesTimelineMetric, self).__init__(TRACING_MODE)
+ super(ThreadTimesTimelineMetric, self).__init__()
# Minimal traces, for minimum noise in CPU-time measurements.
self.trace_categories = MINIMAL_TRACE_CATEGORIES
self.results_to_report = AllThreads
diff --git a/tools/perf/metrics/timeline_unittest.py b/tools/perf/metrics/timeline_unittest.py
index d12fd20..6ed9b00 100644
--- a/tools/perf/metrics/timeline_unittest.py
+++ b/tools/perf/metrics/timeline_unittest.py
@@ -53,7 +53,7 @@ class LoadTimesTimelineMetric(unittest.TestCase):
renderer_main.EndSlice(20, 20)
model.FinalizeImport()
- metric = timeline.LoadTimesTimelineMetric(timeline.TRACING_MODE)
+ metric = timeline.LoadTimesTimelineMetric()
metric.renderer_process = renderer_main.parent
results = self.GetResultsForModel(metric, model)
results.AssertHasPageSpecificScalarValue(
@@ -74,7 +74,7 @@ class LoadTimesTimelineMetric(unittest.TestCase):
x_counter.timestamps += [0, 1]
model.FinalizeImport()
- metric = timeline.LoadTimesTimelineMetric(timeline.TRACING_MODE)
+ metric = timeline.LoadTimesTimelineMetric()
metric.renderer_process = renderer_main.parent
results = self.GetResultsForModel(metric, model)
results.AssertHasPageSpecificScalarValue(