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

Unified Diff: tools/telemetry/telemetry/web_perf/metrics/fast_metric.py

Issue 898673005: [telemetry] Add a V8GCTimes measurement and benchmarks. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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
Index: tools/telemetry/telemetry/web_perf/metrics/fast_metric.py
diff --git a/tools/telemetry/telemetry/web_perf/metrics/fast_metric.py b/tools/telemetry/telemetry/web_perf/metrics/fast_metric.py
deleted file mode 100644
index 88b198918d969cc5f09a2e57c20c8f20f7b3816e..0000000000000000000000000000000000000000
--- a/tools/telemetry/telemetry/web_perf/metrics/fast_metric.py
+++ /dev/null
@@ -1,101 +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.
-
-import logging
-
-from telemetry.timeline import bounds
-from telemetry.value import scalar
-from telemetry.web_perf import timeline_interaction_record as tir_module
-from telemetry.web_perf.metrics import timeline_based_metric
-from telemetry.web_perf.metrics import v8_stats as v8_stats_module
-
-
-class FastMetric(timeline_based_metric.TimelineBasedMetric):
- def __init__(self):
- super(FastMetric, self).__init__()
-
- def AddResults(self, model, renderer_thread, interaction_records, results):
- """Add 11 results: duration, cpu_time, and idle_time,
- incremental_marking, incremental_marking_outside_idle,
- scavenger, scavenger_outside_idle,
- mark_compactor, mark_compactor_outside_idle,
- total_garbage_collection,
- total_garbage_collection_outside_idle
-
- duration is the total wall time for |interaction_records|.
- cpu_time is the renderer thread time that intersects |interaction_records|.
- idle time is wall time for |interaction_records| for which renderer slices
- do not overlap. Note that unscheduled renderer thread time is not
- counted. Idle time is time for which there was nothing to do.
- incremental_marking is the total thread duration spent in incremental
- marking steps.
- incremental_marking_outside_idle is the thread duration spent in incremental
- marking steps outside of idle notifications.
- scavenger is the total thread duration spent in scavenges.
- scavenger_outside_idle is the thread duration spent in scavenges outside of
- idle notifications.
- mark_compactor is the total thread duration spent in mark-sweep-compactor.
- mark_compactor_outside_idle is the thread duration spent in
- mark-sweep-compactor outside of idle notifications.
- total_garbage_collection is the total thread duration spend in garbage
- collection
- total_garbage_collection_outside_idle is the total thread duration spend in
- garbage collection outside of idle notification.
-
- Args:
- model: a TimelineModule instance
- renderer_thread: a telemetry.timeline.thread.Thread() instance
- interaction_records: an iterable of TimelineInteractionRecord instances
- results: an instance of page.PageTestResults
- """
- self.VerifyNonOverlappedRecords(interaction_records)
-
- duration = sum(r.end - r.start for r in interaction_records)
- results.AddValue(scalar.ScalarValue(
- results.current_page, 'fast-duration', 'ms', duration))
-
- try:
- cpu_time = sum(
- r.GetOverlappedThreadTimeForSlice(s)
- for r in interaction_records
- for s in renderer_thread.toplevel_slices)
- except tir_module.NoThreadTimeDataException:
- logging.warning(
- 'Main thread cpu_time cannot be computed for records %s since '
- 'trace does not contain thread time data.',
- repr(interaction_records))
- else:
- results.AddValue(scalar.ScalarValue(
- results.current_page, 'fast-cpu_time', 'ms', cpu_time))
-
- idle_time = duration - sum(
- bounds.Bounds.GetOverlap(r.start, r.end, s.start, s.end)
- for r in interaction_records
- for s in renderer_thread.toplevel_slices)
- results.AddValue(scalar.ScalarValue(
- results.current_page, 'fast-idle_time', 'ms', idle_time))
-
- v8_stats = v8_stats_module.V8Stats(renderer_thread, interaction_records)
-
- for event_stats in v8_stats.all_event_stats:
- results.AddValue(scalar.ScalarValue(
- results.current_page, 'fast-' + event_stats.result_name, 'ms',
- event_stats.thread_duration,
- event_stats.result_description))
- results.AddValue(scalar.ScalarValue(
- results.current_page,
- 'fast-' + event_stats.result_name + '_outside_idle', 'ms',
- event_stats.thread_duration_outside_idle,
- event_stats.result_description + 'outside of idle notifications'))
-
- results.AddValue(scalar.ScalarValue(
- results.current_page, 'fast-total_garbage_collection', 'ms',
- v8_stats.total_gc_thread_duration,
- 'Total thread duration of all garbage collection events'))
-
- results.AddValue(scalar.ScalarValue(
- results.current_page, 'fast-total_garbage_collection_outside_idle',
- 'ms', v8_stats.total_gc_thread_duration_outside_idle,
- 'Total thread duration of all garbage collection events outside of idle'
- 'notifications'))

Powered by Google App Engine
This is Rietveld 408576698