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

Unified Diff: tools/perf/measurements/oilpan_gc_times.py

Issue 863883003: [Oilpan] Split sweep phase in tracing into two categories (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add a metric of total time of sweeping Created 5 years, 11 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 | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 3e7fd435329724b5f1d885df76b547d02e06b304..49e0a2e382c999880fb74c11ad414d30b31fb5a9 100644
--- a/tools/perf/measurements/oilpan_gc_times.py
+++ b/tools/perf/measurements/oilpan_gc_times.py
@@ -20,9 +20,11 @@ from telemetry.value import trace
_CR_RENDERER_MAIN = 'CrRendererMain'
_RUN_SMOOTH_ACTIONS = 'RunSmoothAllActions'
_NAMES_TO_DUMP = ['oilpan_precise_mark',
- 'oilpan_precise_sweep',
+ 'oilpan_precise_lazy_sweep',
+ 'oilpan_precise_complete_sweep',
'oilpan_conservative_mark',
- 'oilpan_conservative_sweep',
+ 'oilpan_conservative_lazy_sweep',
+ 'oilpan_conservative_complete_sweep',
'oilpan_coalesce']
def _AddTracingResults(events, results):
@@ -35,7 +37,8 @@ def _AddTracingResults(events, results):
gc_type = None
forced = False
mark_time = 0
- sweep_time = 0
+ lazy_sweep_time = 0
+ complete_sweep_time = 0
for event in events:
duration = event.thread_duration or event.duration
if event.name == 'ThreadHeap::coalesce':
@@ -44,20 +47,26 @@ def _AddTracingResults(events, results):
if event.name == 'Heap::collectGarbage':
if not gc_type is None and not forced:
values['oilpan_%s_mark' % gc_type].append(mark_time)
- values['oilpan_%s_sweep' % gc_type].append(sweep_time)
+ values['oilpan_%s_lazy_sweep' % gc_type].append(lazy_sweep_time)
+ values['oilpan_%s_complete_sweep' % gc_type].append(complete_sweep_time)
gc_type = 'precise' if event.args['precise'] else 'conservative'
forced = event.args['forced']
mark_time = duration
- sweep_time = 0
+ lazy_sweep_time = 0
+ complete_sweep_time = 0
continue
- if event.name == 'ThreadState::performPendingSweep':
- sweep_time += duration
+ if event.name == 'ThreadHeap::lazySweepPages':
+ lazy_sweep_time += duration
+ continue
+ if event.name == 'ThreadState::completeSweep':
+ complete_sweep_time += duration
continue
if not gc_type is None and not forced:
values['oilpan_%s_mark' % gc_type].append(mark_time)
- values['oilpan_%s_sweep' % gc_type].append(sweep_time)
+ values['oilpan_%s_lazy_sweep' % gc_type].append(lazy_sweep_time)
+ values['oilpan_%s_complete_sweep' % gc_type].append(complete_sweep_time)
# Dump
page = results.current_page
@@ -71,12 +80,24 @@ def _AddTracingResults(events, results):
results.AddValue(scalar.ScalarValue(
page, name + '_total', unit, sum(values[name])))
- for do_type in ['mark', 'sweep']:
- work_time = 0
+ # Summarize marking time
+ total_mark_time = 0
+ for gc_type in ['precise', 'conservative']:
+ total_mark_time += sum(values['oilpan_%s_mark' % gc_type])
+ results.AddValue(
+ scalar.ScalarValue(page, 'oilpan_mark', unit, total_mark_time))
+
+ # Summarize sweeping time
+ total_sweep_time = 0
+ for do_type in ['lazy_sweep', 'complete_sweep']:
+ sweep_time = 0
for gc_type in ['precise', 'conservative']:
- work_time += sum(values['oilpan_%s_%s' % (gc_type, do_type)])
+ sweep_time += sum(values['oilpan_%s_%s' % (gc_type, do_type)])
key = 'oilpan_%s' % do_type
- results.AddValue(scalar.ScalarValue(page, key, unit, work_time))
+ results.AddValue(scalar.ScalarValue(page, key, unit, sweep_time))
+ total_sweep_time += sweep_time
+ results.AddValue(
+ scalar.ScalarValue(page, 'oilpan_sweep', unit, total_sweep_time))
gc_time = 0
for key in values:
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698