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

Unified Diff: cc/scheduler/compositor_timing_history.cc

Issue 1681393003: cc: Add MainAndImplFrameTimeDelta UMA. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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: cc/scheduler/compositor_timing_history.cc
diff --git a/cc/scheduler/compositor_timing_history.cc b/cc/scheduler/compositor_timing_history.cc
index f3ac0670525bd31d389c2008aebfd5c743649364..478d5f86b62109040beb44d9914ebd1b2d8dc981 100644
--- a/cc/scheduler/compositor_timing_history.cc
+++ b/cc/scheduler/compositor_timing_history.cc
@@ -50,6 +50,9 @@ class CompositorTimingHistory::UMAReporter {
base::TimeDelta estimate,
bool affects_estimate) = 0;
virtual void AddSwapToAckLatency(base::TimeDelta duration) = 0;
+
+ // Synchronization measurements
+ virtual void AddMainAndImplSynchronized(bool synchronized);
};
namespace {
@@ -216,6 +219,11 @@ class RendererUMAReporter : public CompositorTimingHistory::UMAReporter {
UMA_HISTOGRAM_CUSTOM_TIMES_MICROS("Scheduling.Renderer.SwapToAckLatency",
duration);
}
+
+ void AddMainAndImplSynchronized(bool synchronized) override {
+ UMA_HISTOGRAM_BOOLEAN("Scheduling.Renderer.MainAndImplSynchronized",
+ synchronized);
+ }
};
class BrowserUMAReporter : public CompositorTimingHistory::UMAReporter {
@@ -297,6 +305,11 @@ class BrowserUMAReporter : public CompositorTimingHistory::UMAReporter {
UMA_HISTOGRAM_CUSTOM_TIMES_MICROS("Scheduling.Browser.SwapToAckLatency",
duration);
}
+
+ void AddMainAndImplSynchronized(bool synchronized) override {
+ UMA_HISTOGRAM_BOOLEAN("Scheduling.Browser.MainAndImplSynchronized",
+ synchronized);
+ }
};
class NullUMAReporter : public CompositorTimingHistory::UMAReporter {
@@ -331,6 +344,7 @@ class NullUMAReporter : public CompositorTimingHistory::UMAReporter {
base::TimeDelta estimate,
bool affects_estimate) override {}
void AddSwapToAckLatency(base::TimeDelta duration) override {}
+ void AddMainAndImplSynchronized(bool synchronized) override {}
};
} // namespace
@@ -658,7 +672,8 @@ void CompositorTimingHistory::WillDraw() {
draw_start_time_ = Now();
}
-void CompositorTimingHistory::DidDraw(bool used_new_active_tree) {
+void CompositorTimingHistory::DidDraw(bool used_new_active_tree,
+ bool main_thread_missed_last_deadline) {
DCHECK_NE(base::TimeTicks(), draw_start_time_);
base::TimeTicks draw_end_time = Now();
base::TimeDelta draw_duration = draw_end_time - draw_start_time_;
@@ -683,13 +698,17 @@ void CompositorTimingHistory::DidDraw(bool used_new_active_tree) {
}
draw_end_time_prev_ = draw_end_time;
- if (begin_main_frame_committing_continuously_ && used_new_active_tree) {
- if (!new_active_tree_draw_end_time_prev_.is_null()) {
- base::TimeDelta draw_interval =
- draw_end_time - new_active_tree_draw_end_time_prev_;
- uma_reporter_->AddCommitInterval(draw_interval);
+ if (used_new_active_tree) {
+ uma_reporter_->AddMainAndImplSynchronized(
+ !main_thread_missed_last_deadline);
+ if (begin_main_frame_committing_continuously_) {
+ if (!new_active_tree_draw_end_time_prev_.is_null()) {
+ base::TimeDelta draw_interval =
+ draw_end_time - new_active_tree_draw_end_time_prev_;
+ uma_reporter_->AddCommitInterval(draw_interval);
+ }
+ new_active_tree_draw_end_time_prev_ = draw_end_time;
}
- new_active_tree_draw_end_time_prev_ = draw_end_time;
}
draw_start_time_ = base::TimeTicks();

Powered by Google App Engine
This is Rietveld 408576698