OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "cc/scheduler/compositor_timing_history.h" | 5 #include "cc/scheduler/compositor_timing_history.h" |
6 | 6 |
7 #include "base/metrics/histogram.h" | 7 #include "base/metrics/histogram.h" |
8 #include "base/trace_event/trace_event.h" | 8 #include "base/trace_event/trace_event.h" |
9 #include "cc/debug/rendering_stats_instrumentation.h" | 9 #include "cc/debug/rendering_stats_instrumentation.h" |
10 | 10 |
(...skipping 27 matching lines...) Expand all Loading... |
38 // The estimates related to main-thread responsiveness affect whether | 38 // The estimates related to main-thread responsiveness affect whether |
39 // we attempt to recovery latency or not and use the 50th percentile. | 39 // we attempt to recovery latency or not and use the 50th percentile. |
40 // TODO(brianderson): Fine tune the percentiles below. | 40 // TODO(brianderson): Fine tune the percentiles below. |
41 const size_t kDurationHistorySize = 60; | 41 const size_t kDurationHistorySize = 60; |
42 const double kBeginMainFrameToCommitEstimationPercentile = 50.0; | 42 const double kBeginMainFrameToCommitEstimationPercentile = 50.0; |
43 const double kCommitToReadyToActivateEstimationPercentile = 50.0; | 43 const double kCommitToReadyToActivateEstimationPercentile = 50.0; |
44 const double kPrepareTilesEstimationPercentile = 100.0; | 44 const double kPrepareTilesEstimationPercentile = 100.0; |
45 const double kActivateEstimationPercentile = 100.0; | 45 const double kActivateEstimationPercentile = 100.0; |
46 const double kDrawEstimationPercentile = 100.0; | 46 const double kDrawEstimationPercentile = 100.0; |
47 | 47 |
48 const base::TimeDelta kUmaDurationMin = base::TimeDelta::FromMicroseconds(1); | 48 const int kUmaDurationMin_uS = 1; |
49 const base::TimeDelta kUmaDurationMax = base::TimeDelta::FromSeconds(1); | 49 const int64 kUmaDurationMax_uS = 1 * base::Time::kMicrosecondsPerSecond; |
50 const size_t kUmaDurationBucketCount = 100; | 50 const size_t kUmaDurationBucketCount = 100; |
51 | 51 |
52 // Deprecated because they combine Browser and Renderer stats and have low | 52 // Deprecated because they combine Browser and Renderer stats and have low |
53 // precision. | 53 // precision. |
54 // TODO(brianderson): Remove. | 54 // TODO(brianderson): Remove. |
55 void DeprecatedDrawDurationUMA(base::TimeDelta duration, | 55 void DeprecatedDrawDurationUMA(base::TimeDelta duration, |
56 base::TimeDelta estimate) { | 56 base::TimeDelta estimate) { |
57 base::TimeDelta duration_overestimate; | 57 base::TimeDelta duration_overestimate; |
58 base::TimeDelta duration_underestimate; | 58 base::TimeDelta duration_underestimate; |
59 if (duration > estimate) | 59 if (duration > estimate) |
60 duration_underestimate = duration - estimate; | 60 duration_underestimate = duration - estimate; |
61 else | 61 else |
62 duration_overestimate = estimate - duration; | 62 duration_overestimate = estimate - duration; |
63 UMA_HISTOGRAM_CUSTOM_TIMES("Renderer.DrawDuration", duration, | 63 UMA_HISTOGRAM_CUSTOM_TIMES("Renderer.DrawDuration", duration, |
64 base::TimeDelta::FromMilliseconds(1), | 64 base::TimeDelta::FromMilliseconds(1), |
65 base::TimeDelta::FromMilliseconds(100), 50); | 65 base::TimeDelta::FromMilliseconds(100), 50); |
66 UMA_HISTOGRAM_CUSTOM_TIMES("Renderer.DrawDurationUnderestimate", | 66 UMA_HISTOGRAM_CUSTOM_TIMES("Renderer.DrawDurationUnderestimate", |
67 duration_underestimate, | 67 duration_underestimate, |
68 base::TimeDelta::FromMilliseconds(1), | 68 base::TimeDelta::FromMilliseconds(1), |
69 base::TimeDelta::FromMilliseconds(100), 50); | 69 base::TimeDelta::FromMilliseconds(100), 50); |
70 UMA_HISTOGRAM_CUSTOM_TIMES("Renderer.DrawDurationOverestimate", | 70 UMA_HISTOGRAM_CUSTOM_TIMES("Renderer.DrawDurationOverestimate", |
71 duration_overestimate, | 71 duration_overestimate, |
72 base::TimeDelta::FromMilliseconds(1), | 72 base::TimeDelta::FromMilliseconds(1), |
73 base::TimeDelta::FromMilliseconds(100), 50); | 73 base::TimeDelta::FromMilliseconds(100), 50); |
74 } | 74 } |
75 | 75 |
76 #define UMA_HISTOGRAM_CUSTOM_TIMES_MICROS(name, sample) \ | 76 #define UMA_HISTOGRAM_CUSTOM_TIMES_MICROS(name, sample) \ |
77 UMA_HISTOGRAM_CUSTOM_COUNTS( \ | 77 UMA_HISTOGRAM_CUSTOM_COUNTS( \ |
78 name, sample.InMicroseconds(), kUmaDurationMin.InMicroseconds(), \ | 78 name, sample.InMicroseconds(), kUmaDurationMin_uS, \ |
79 kUmaDurationMax.InMicroseconds(), kUmaDurationBucketCount); | 79 kUmaDurationMax_uS, kUmaDurationBucketCount); |
80 | 80 |
81 #define REPORT_COMPOSITOR_TIMING_HISTORY_UMA(category, subcategory) \ | 81 #define REPORT_COMPOSITOR_TIMING_HISTORY_UMA(category, subcategory) \ |
82 do { \ | 82 do { \ |
83 base::TimeDelta duration_overestimate; \ | 83 base::TimeDelta duration_overestimate; \ |
84 base::TimeDelta duration_underestimate; \ | 84 base::TimeDelta duration_underestimate; \ |
85 if (duration > estimate) \ | 85 if (duration > estimate) \ |
86 duration_underestimate = duration - estimate; \ | 86 duration_underestimate = duration - estimate; \ |
87 else \ | 87 else \ |
88 duration_overestimate = estimate - duration; \ | 88 duration_overestimate = estimate - duration; \ |
89 UMA_HISTOGRAM_CUSTOM_TIMES_MICROS( \ | 89 UMA_HISTOGRAM_CUSTOM_TIMES_MICROS( \ |
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
390 uma_reporter_->AddDrawDuration(draw_duration, draw_estimate, enabled_); | 390 uma_reporter_->AddDrawDuration(draw_duration, draw_estimate, enabled_); |
391 | 391 |
392 if (enabled_) { | 392 if (enabled_) { |
393 draw_duration_history_.InsertSample(draw_duration); | 393 draw_duration_history_.InsertSample(draw_duration); |
394 } | 394 } |
395 | 395 |
396 start_draw_time_ = base::TimeTicks(); | 396 start_draw_time_ = base::TimeTicks(); |
397 } | 397 } |
398 | 398 |
399 } // namespace cc | 399 } // namespace cc |
OLD | NEW |