[go: nahoru, domu]

Add jank metrics implementation

This CL implements the jank metrics that track abrupt drop in smoothness
(i.e. increase in frame latency). Jank metrics histograms are reported
under the "Graphics.Smoothness.Jank" namespace and the histogram names
indicate the frame sequence tracker (and its effective thread type) each
jank metric is associated with (e.g.
Graphics.Smoothness.Jank.Main.WheelScroll). Each jank occurrence is also
visualized as a trace event spanning the duration of the janky frame.

Bug: 1073216
Change-Id: I50bf8983d9c94cda68234d0423308beed1f8d5d7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2248173
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Behdad Bakhshinategh <behdadb@chromium.org>
Commit-Queue: Mingjing Zhang <mjzhang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#798350}
diff --git a/cc/BUILD.gn b/cc/BUILD.gn
index 3b7776d..474cc05 100644
--- a/cc/BUILD.gn
+++ b/cc/BUILD.gn
@@ -1,5 +1,5 @@
-# Copyright 2014 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
+# 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("//build/config/sanitizers/sanitizers.gni")
 import("//gpu/vulkan/features.gni")
@@ -175,6 +175,8 @@
     "metrics/frame_sequence_tracker.h",
     "metrics/frame_sequence_tracker_collection.cc",
     "metrics/frame_sequence_tracker_collection.h",
+    "metrics/jank_metrics.cc",
+    "metrics/jank_metrics.h",
     "metrics/latency_ukm_reporter.cc",
     "metrics/latency_ukm_reporter.h",
     "metrics/lcd_text_metrics_reporter.cc",
@@ -675,6 +677,7 @@
     "metrics/events_metrics_manager_unittest.cc",
     "metrics/frame_sequence_metrics_unittest.cc",
     "metrics/frame_sequence_tracker_unittest.cc",
+    "metrics/jank_metrics_unittest.cc",
     "metrics/video_playback_roughness_reporter_unittest.cc",
     "mojo_embedder/async_layer_tree_frame_sink_unittest.cc",
     "paint/clear_for_opaque_raster_unittest.cc",