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

Unified Diff: content/browser/renderer_host/input/render_widget_host_latency_tracker.cc

Issue 2976113002: Add a sampling scheme to ScrollUpdate.Touch UKM (Closed)
Patch Set: Remove the overhead for using random function Created 3 years, 5 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: content/browser/renderer_host/input/render_widget_host_latency_tracker.cc
diff --git a/content/browser/renderer_host/input/render_widget_host_latency_tracker.cc b/content/browser/renderer_host/input/render_widget_host_latency_tracker.cc
index 62e42952dd6e9400f3de541511172139ca8b229d..77292aa43ab8427d3ae6be921db2dd8421744e2c 100644
--- a/content/browser/renderer_host/input/render_widget_host_latency_tracker.cc
+++ b/content/browser/renderer_host/input/render_widget_host_latency_tracker.cc
@@ -9,6 +9,7 @@
#include "base/logging.h"
#include "base/metrics/histogram_functions.h"
#include "base/metrics/histogram_macros.h"
+#include "base/rand_util.h"
#include "build/build_config.h"
#include "components/rappor/public/rappor_utils.h"
#include "content/browser/renderer_host/render_widget_host_delegate.h"
@@ -29,6 +30,8 @@ using ui::LatencyInfo;
namespace content {
namespace {
+constexpr int kSamplingInterval = 10;
+
std::string WebInputEventTypeToInputModalityString(WebInputEvent::Type type) {
if (type == blink::WebInputEvent::kMouseWheel) {
return "Wheel";
@@ -138,7 +141,8 @@ void RecordEQTAccuracy(base::TimeDelta queueing_time,
} // namespace
-RenderWidgetHostLatencyTracker::RenderWidgetHostLatencyTracker()
+RenderWidgetHostLatencyTracker::RenderWidgetHostLatencyTracker(
+ bool metric_sampling)
: ukm_source_id_(-1),
last_event_id_(0),
latency_component_id_(0),
@@ -146,7 +150,12 @@ RenderWidgetHostLatencyTracker::RenderWidgetHostLatencyTracker()
has_seen_first_gesture_scroll_update_(false),
active_multi_finger_gesture_(false),
touch_start_default_prevented_(false),
- render_widget_host_delegate_(nullptr) {}
+ metric_sampling_(metric_sampling),
+ metric_sampling_countdown_(-1),
+ render_widget_host_delegate_(nullptr) {
+ if (metric_sampling)
+ metric_sampling_countdown_ = base::RandUint64() % kSamplingInterval;
+}
RenderWidgetHostLatencyTracker::~RenderWidgetHostLatencyTracker() {}
@@ -414,6 +423,15 @@ void RenderWidgetHostLatencyTracker::ReportUkmScrollLatency(
const LatencyInfo::LatencyComponent& end_component) {
CONFIRM_VALID_TIMING(start_component, end_component)
+ // Only report a subset of this metric as the volume is too high.
+ if (event_name == "Event.ScrollUpdate.Touch") {
+ metric_sampling_countdown_++;
tdresser 2017/07/17 20:25:22 "countdown" implies it counts down, but it counts
Navid Zolghadr 2017/07/19 15:57:46 Done.
+ metric_sampling_countdown_ %= kSamplingInterval;
+ if (metric_sampling_ && metric_sampling_countdown_)
+ return;
+ metric_sampling_countdown_ = 0;
dtapuska 2017/07/17 20:21:41 This line is useless.
Navid Zolghadr 2017/07/19 15:57:46 Done.
+ }
+
ukm::SourceId ukm_source_id = GetUkmSourceId();
ukm::UkmRecorder* ukm_recorder = ukm::UkmRecorder::Get();

Powered by Google App Engine
This is Rietveld 408576698