Chromium Code Reviews| Index: tools/perf/measurements/oilpan_gc_times.py |
| diff --git a/tools/perf/measurements/oilpan_gc_times.py b/tools/perf/measurements/oilpan_gc_times.py |
| index eb105ae4513b41e8071489a5920900d9fa8f41fe..dabb5349495a349fb65b88b62651c199df12f944 100644 |
| --- a/tools/perf/measurements/oilpan_gc_times.py |
| +++ b/tools/perf/measurements/oilpan_gc_times.py |
| @@ -6,10 +6,12 @@ import os |
| from measurements import smoothness_controller |
| from measurements import timeline_controller |
| +from telemetry import benchmark |
| from telemetry.core.platform import tracing_category_filter |
| from telemetry.core.platform import tracing_options |
| from telemetry.page import page_test |
| from telemetry.page.actions import action_runner |
| +from telemetry.results import results_options |
| from telemetry.timeline.model import TimelineModel |
| from telemetry.util import statistics |
| from telemetry.value import list_of_scalar_values |
| @@ -27,7 +29,7 @@ _NAMES_TO_DUMP = ['oilpan_precise_mark', |
| 'oilpan_conservative_complete_sweep', |
| 'oilpan_coalesce'] |
| -def _AddTracingResults(events, results): |
| +def _AddTracingResults(events, include_forced_gc, results): |
| # Prepare |
| values = {} |
| for name in _NAMES_TO_DUMP: |
| @@ -45,7 +47,7 @@ def _AddTracingResults(events, results): |
| values['oilpan_coalesce'].append(duration) |
| continue |
| if event.name == 'Heap::collectGarbage': |
| - if not gc_type is None and not forced: |
| + if not gc_type is None and (not forced or include_forced_gc): |
| values['oilpan_%s_mark' % gc_type].append(mark_time) |
| values['oilpan_%s_lazy_sweep' % gc_type].append(lazy_sweep_time) |
| values['oilpan_%s_complete_sweep' % gc_type].append(complete_sweep_time) |
| @@ -63,7 +65,7 @@ def _AddTracingResults(events, results): |
| complete_sweep_time += duration |
| continue |
| - if not gc_type is None and not forced: |
| + if not gc_type is None and (not forced or include_forced_gc): |
| values['oilpan_%s_mark' % gc_type].append(mark_time) |
| values['oilpan_%s_lazy_sweep' % gc_type].append(lazy_sweep_time) |
| values['oilpan_%s_complete_sweep' % gc_type].append(complete_sweep_time) |
| @@ -106,9 +108,10 @@ def _AddTracingResults(events, results): |
| class _OilpanGCTimesBase(page_test.PageTest): |
| - def __init__(self, action_name = ''): |
| + def __init__(self, action_name='', include_forced_gc=False): |
| super(_OilpanGCTimesBase, self).__init__(action_name) |
| self._timeline_model = None |
| + self._include_forced_gc = include_forced_gc |
| def WillNavigateToPage(self, page, tab): |
| # FIXME: Remove webkit.console when blink.console lands in chromium and |
| @@ -130,12 +133,24 @@ class _OilpanGCTimesBase(page_test.PageTest): |
| threads = self._timeline_model.GetAllThreads() |
| for thread in threads: |
| if thread.name == _CR_RENDERER_MAIN: |
| - _AddTracingResults(thread.all_slices, results) |
| + _AddTracingResults(thread.all_slices, self._include_forced_gc, results) |
| def CleanUpAfterPage(self, page, tab): |
| if tab.browser.platform.tracing_controller.is_tracing_running: |
| tab.browser.platform.tracing_controller.Stop() |
| + def _ParseEventsForTest(self, events, include_forced_gc, options): |
|
Sami
2015/03/09 16:29:52
Instead of adding this helper here, could we follo
peria
2015/04/02 08:26:01
Done.
|
| + options.output_dir = None |
| + options.output_formats = ['none'] |
| + options.suppress_gtest_report = True |
| + options.output_trace_tag = None |
| + results = results_options.CreateResults( |
| + benchmark.BenchmarkMetadata(''), options) |
| + # No pages are running in this test. |
| + results.WillRunPage(None) |
| + _AddTracingResults(events, include_forced_gc, results) |
| + return results |
| + |
| class OilpanGCTimesForSmoothness(_OilpanGCTimesBase): |
| def __init__(self): |
| @@ -170,7 +185,7 @@ class OilpanGCTimesForBlinkPerf(_OilpanGCTimesBase): |
| class OilpanGCTimesForInternals(_OilpanGCTimesBase): |
| def __init__(self): |
| - super(OilpanGCTimesForInternals, self).__init__() |
| + super(OilpanGCTimesForInternals, self).__init__(include_forced_gc=True) |
| @classmethod |
| def CustomizeBrowserOptions(cls, options): |