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

Unified Diff: chrome/browser/metrics/first_web_contents_profiler.cc

Issue 1422773003: Revert "Record time for UI task to execute under 1/60s" (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ab3_firstpaint2
Patch Set: git cl format Created 5 years, 2 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
« no previous file with comments | « chrome/browser/metrics/first_web_contents_profiler.h ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/metrics/first_web_contents_profiler.cc
diff --git a/chrome/browser/metrics/first_web_contents_profiler.cc b/chrome/browser/metrics/first_web_contents_profiler.cc
index cbeef39cf1b5e766fcf462c49547889be281e623..1b3a68006a21595a9f055713b3da53160c4dc38a 100644
--- a/chrome/browser/metrics/first_web_contents_profiler.cc
+++ b/chrome/browser/metrics/first_web_contents_profiler.cc
@@ -11,9 +11,6 @@
#include "base/location.h"
#include "base/logging.h"
#include "base/metrics/histogram_macros.h"
-#include "base/process/process_info.h"
-#include "base/single_thread_task_runner.h"
-#include "base/thread_task_runner_handle.h"
#include "base/time/time.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_iterator.h"
@@ -21,83 +18,8 @@
#include "components/metrics/profiler/tracking_synchronizer.h"
#include "components/metrics/proto/profiler_event.pb.h"
#include "components/startup_metric_utils/startup_metric_utils.h"
-#include "content/public/browser/browser_thread.h"
#include "content/public/browser/navigation_handle.h"
-namespace {
-
-// The initial delay for responsiveness prober in milliseconds.
-const int kInitialDelayMs = 20;
-
-// The following is the multiplier is used to delay the probe for
-// responsiveness.
-const double kBackoffMultiplier = 1.5;
-
-// The maximum backoff delay in milliseconds.
-const int kMaxDelayMs = 250;
-
-void DelayedRecordUIResponsiveness(
- base::HistogramBase* responsiveness_histogram,
- base::HistogramBase* unresponsiveness_histogram,
- base::Time start_recording_time,
- base::TimeDelta next_task_delay);
-
-// Records the elapsed time for a task to execute a UI task under 1/60s after
-// the first WebContent was painted at least once. If after few tries it is
-// unable to execute under 1/60s it records the execution time of a task.
-void RecordUIResponsiveness(base::HistogramBase* responsiveness_histogram,
- base::HistogramBase* unresponsiveness_histogram,
- base::Time start_recording_time,
- base::Time task_posted_time,
- base::TimeDelta next_task_delay) {
- DCHECK(!start_recording_time.is_null());
- DCHECK(!task_posted_time.is_null());
- base::Time now = base::Time::Now();
- base::TimeDelta elapsed = now - task_posted_time;
-
- // Task executed in less then 1/60s.
- if (elapsed.InMilliseconds() <= (1000 / 60)) {
- responsiveness_histogram->AddTime(now - start_recording_time);
- } else if (next_task_delay.InMilliseconds() > kMaxDelayMs) {
- // Records elapsed time to execute last task.
- unresponsiveness_histogram->AddTime(elapsed);
- } else {
- base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
- FROM_HERE,
- base::Bind(&DelayedRecordUIResponsiveness, responsiveness_histogram,
- unresponsiveness_histogram, start_recording_time,
- next_task_delay * kBackoffMultiplier),
- next_task_delay);
- }
-}
-
-// Used for posting |RecordUIResponsiveness| without delay, so that
-// |RecordUIResponsiveness| can do more accurate time calculation for elapsed
-// time of the task to complete.
-void DelayedRecordUIResponsiveness(
- base::HistogramBase* responsiveness_histogram,
- base::HistogramBase* unresponsiveness_histogram,
- base::Time start_recording_time,
- base::TimeDelta next_task_delay) {
- base::ThreadTaskRunnerHandle::Get()->PostTask(
- FROM_HERE, base::Bind(&RecordUIResponsiveness, responsiveness_histogram,
- unresponsiveness_histogram, start_recording_time,
- base::Time::Now(), next_task_delay));
-}
-
-// Sends the first task for measuring UI Responsiveness.
-void MeasureUIResponsiveness(base::HistogramBase* responsiveness_histogram,
- base::HistogramBase* unresponsiveness_histogram) {
- base::ThreadTaskRunnerHandle::Get()->PostTask(
- FROM_HERE,
- base::Bind(&RecordUIResponsiveness, responsiveness_histogram,
- unresponsiveness_histogram, base::Time::Now(),
- base::Time::Now(),
- base::TimeDelta::FromMilliseconds(kInitialDelayMs)));
-}
-
-} // namespace
-
scoped_ptr<FirstWebContentsProfiler>
FirstWebContentsProfiler::CreateProfilerForFirstWebContents(
Delegate* delegate) {
@@ -123,15 +45,7 @@ FirstWebContentsProfiler::FirstWebContentsProfiler(
collected_main_navigation_start_metric_(false),
collected_main_navigation_finished_metric_(false),
finished_(false),
- delegate_(delegate),
- responsiveness_histogram_(NULL),
- responsiveness_1sec_histogram_(NULL),
- responsiveness_10sec_histogram_(NULL),
- unresponsiveness_histogram_(NULL),
- unresponsiveness_1sec_histogram_(NULL),
- unresponsiveness_10sec_histogram_(NULL) {
- InitHistograms();
-}
+ delegate_(delegate) {}
void FirstWebContentsProfiler::DidFirstVisuallyNonEmptyPaint() {
if (collected_paint_metric_)
@@ -151,26 +65,6 @@ void FirstWebContentsProfiler::DidFirstVisuallyNonEmptyPaint() {
metrics::TrackingSynchronizer::OnProfilingPhaseCompleted(
metrics::ProfilerEventProto::EVENT_FIRST_NONEMPTY_PAINT);
- // Measures responsiveness now.
- MeasureUIResponsiveness(responsiveness_histogram_,
- unresponsiveness_histogram_);
-
- // As it was observed that sometimes the task queue can be free immediately
- // after the first paint but get overloaded shortly thereafter, here we
- // measures responsiveness after 1 second and 10 seconds to observe the
- // possible effect of those late tasks.
- base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
- FROM_HERE,
- base::Bind(&MeasureUIResponsiveness, responsiveness_1sec_histogram_,
- unresponsiveness_1sec_histogram_),
- base::TimeDelta::FromSeconds(1));
-
- base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
- FROM_HERE,
- base::Bind(&MeasureUIResponsiveness, responsiveness_10sec_histogram_,
- unresponsiveness_10sec_histogram_),
- base::TimeDelta::FromSeconds(10));
-
if (IsFinishedCollectingMetrics())
FinishedCollectingMetrics(FinishReason::DONE);
}
@@ -281,47 +175,4 @@ void FirstWebContentsProfiler::FinishedCollectingMetrics(
delegate_->ProfilerFinishedCollectingMetrics();
}
-void FirstWebContentsProfiler::InitHistograms() {
- const std::string responsiveness_histogram_name =
- "Startup.FirstWebContents.UIResponsive";
- responsiveness_histogram_ = base::Histogram::FactoryTimeGet(
- responsiveness_histogram_name, base::TimeDelta::FromMilliseconds(1),
- base::TimeDelta::FromSeconds(60), 100,
- base::Histogram::kUmaTargetedHistogramFlag);
-
- const std::string responsiveness_1sec_histogram_name =
- "Startup.FirstWebContents.UIResponsive_1sec";
- responsiveness_1sec_histogram_ = base::Histogram::FactoryTimeGet(
- responsiveness_1sec_histogram_name, base::TimeDelta::FromMilliseconds(1),
- base::TimeDelta::FromSeconds(60), 100,
- base::Histogram::kUmaTargetedHistogramFlag);
-
- const std::string responsiveness_10sec_histogram_name =
- "Startup.FirstWebContents.UIResponsive_10sec";
- responsiveness_10sec_histogram_ = base::Histogram::FactoryTimeGet(
- responsiveness_10sec_histogram_name, base::TimeDelta::FromMilliseconds(1),
- base::TimeDelta::FromSeconds(60), 100,
- base::Histogram::kUmaTargetedHistogramFlag);
-
- const std::string unresponsiveness_histogram_name =
- "Startup.FirstWebContents.UINotResponsive";
- unresponsiveness_histogram_ = base::Histogram::FactoryTimeGet(
- unresponsiveness_histogram_name, base::TimeDelta::FromMilliseconds(1),
- base::TimeDelta::FromSeconds(60), 100,
- base::Histogram::kUmaTargetedHistogramFlag);
-
- const std::string unresponsiveness_1sec_histogram_name =
- "Startup.FirstWebContents.UINotResponsive_1sec";
- unresponsiveness_1sec_histogram_ = base::Histogram::FactoryTimeGet(
- unresponsiveness_1sec_histogram_name,
- base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromSeconds(60),
- 100, base::Histogram::kUmaTargetedHistogramFlag);
-
- const std::string unresponsiveness_10sec_histogram_name =
- "Startup.FirstWebContents.UINotResponsive_10sec";
- unresponsiveness_10sec_histogram_ = base::Histogram::FactoryTimeGet(
- unresponsiveness_10sec_histogram_name,
- base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromSeconds(60),
- 100, base::Histogram::kUmaTargetedHistogramFlag);
-}
#endif // !defined(OS_ANDROID)
« no previous file with comments | « chrome/browser/metrics/first_web_contents_profiler.h ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698