diff options
author | nednguyen@google.com <nednguyen@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-20 00:27:52 +0000 |
---|---|---|
committer | nednguyen@google.com <nednguyen@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-20 00:27:52 +0000 |
commit | a15daaa6cdb86f847519fad6477437497d99a260 (patch) | |
tree | b707ff06ba775d99e898c94c5e7be9057a4d3ce4 /tools/perf | |
parent | c2809346d25a645d175af044dc28c610fe8e099a (diff) | |
download | chromium_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.py | 20 | ||||
-rw-r--r-- | tools/perf/measurements/loading_timeline.py | 31 | ||||
-rw-r--r-- | tools/perf/measurements/loading_timeline_unittest.py | 20 | ||||
-rw-r--r-- | tools/perf/measurements/loading_trace.py | 3 | ||||
-rw-r--r-- | tools/perf/measurements/test_data/loading_timeline.csv | 10 | ||||
-rw-r--r-- | tools/perf/metrics/timeline.py | 58 | ||||
-rw-r--r-- | tools/perf/metrics/timeline_unittest.py | 4 |
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( |